[mysql] [note] mysql 报错 Multi-threaded slave :

来源:这里教程网 时间:2026-03-01 15:35:11 作者:

mysql版本:5.7.30

报错1:

2021-01-24T19:16:33.731787Z 59 [Note] Multi-threaded slave: Coordinator has waited 15460741 times hitting slave_pending_jobs_size_max; current event size = 7412. 2021-01-24T19:16:33.735367Z 59 [Note] Multi-threaded slave: Coordinator has waited 15460751 times hitting slave_pending_jobs_size_max; current event size = 61977. 2021-01-24T19:16:33.738231Z 59 [Note] Multi-threaded slave: Coordinator has waited 15460761 times hitting slave_pending_jobs_size_max; current event size = 7530. 2021-01-24T19:16:33.740698Z 59 [Note] Multi-threaded slave: Coordinator has waited 15460771 times hitting slave_pending_jobs_size_max; current event size = 61925. 2021-01-24T19:16:33.742858Z 59 [Note] Multi-threaded slave: Coordinator has waited 15460781 times hitting slave_pending_jobs_size_max; current event size = 8011. 2021-01-24T19:16:33.745443Z 59 [Note] Multi-threaded slave: Coordinator has waited 15460791 times hitting slave_pending_jobs_size_max; current event size = 7132.

官方资料:

bug连接:

https://bugs.mysql.com/bug.php?id=68462

建议:

can you try to increase the size of slave-pending-jobs-size-max (possibly to a big value, just for testing)? Do you still see the same issue? Fixed in 5.6+. Documented as follows in the 5.6.12 and 5.7.2 changelogs:        When the size of an execution event exceeded the maximum set for         the buffer (slave_pending_jobs_size_max), row-based replication         could hang with -Waiting for slave workers to free pending         events-.Closed.

报错2:

2021-01-25T08:14:08.576904Z 17 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 124; events assigned = 861563905; worker queues filled over overrun level = 0; waited due a Worker queue full = 0; waited due the total size = 7620899; waited at clock conflicts = 31110447234200 waited (count) when Workers occupied = 12744756 waited when Workers occupied = 8278252000 2021-01-25T08:16:08.273207Z 17 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 120; events assigned = 861577217; worker queues filled over overrun level = 0; waited due a Worker queue full = 0; waited due the total size = 7620899; waited at clock conflicts = 31111352323200 waited (count) when Workers occupied = 12744756 waited when Workers occupied = 8278252000 2021-01-25T08:18:10.190863Z 17 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 122; events assigned = 861590529; worker queues filled over overrun level = 0; waited due a Worker queue full = 0; waited due the total size = 7620899; waited at clock conflicts = 31112325614500 waited (count) when Workers occupied = 12744756 waited when Workers occupied = 8278252000 2021-01-25T08:20:10.052990Z 17 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 120; events assigned = 861608961; worker queues filled over overrun level = 0; waited due a Worker queue full = 0; waited due the total size = 7620899; waited at clock conflicts = 31113614922300 waited (count) when Workers occupied = 12744756 waited when Workers occupied = 8278252000 2021-01-25T08:22:16.867137Z 17 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 126; events assigned = 861625345; worker queues filled over overrun level = 0; waited due a Worker queue full = 0; waited due the total size = 7620899; waited at clock conflicts = 31115474030700 waited (count) when Workers occupied = 12744756 waited when Workers occupied = 8278252000 2021-01-25T08:24:21.032877Z 17 [Note] Multi-threaded slave statistics for channel '': seconds elapsed = 125; events assigned = 861643777; worker queues filled over overrun level = 0; waited due a Worker queue full = 0; waited due the total size = 7620899; waited at clock conflicts = 31117365516100 waited (count) when Workers occupied = 12744756 waited when Workers occupied = 8278252000 错误日志出现上述提示信息是因为启用了MTS(Multi-threaded slave)需要启用slave_parallel_workers参数(默认值为0,最大值为1024),并且log_warning参数要大于1 (该参数将于v8.0.3去除,被log_error_verbosity 替代),在error_log里面会有上述提示。mysql> show variables like 'slave_parallel_workers'; +------------------------+-------+ | Variable_name          | Value | +------------------------+-------+ | slave_parallel_workers | 4     | +------------------------+-------+ 1 row in set (0.01 sec)2021-01-25T08:24:21.032877Z 17 [Note] Multi-threaded slave statistics for channel '':  seconds elapsed = 125;            --上一次统计跟这一次统计的时间间隔                                events assigned = 861643777; --总共有多少event被分配执行,计总数 worker queues filled over overrun level = 0; --多线程同步中,worker 的私有队列长度超长的次数,计总数 waited due a Worker queue full = 0;  waited due the total size = 7620899;  waited at clock conflicts = 31117365516100 waited (count) when Workers occupied = 12744756 waited when Workers occupied = 8278252000 seconds elapsed:   上一次统计跟这一次统计的时间间隔; events assigned:   总共有多少event被分配执行; worker queues filled over overrun level:mts在所有的并行workers之间倾向于加载平衡的时间。slave_parrllel_workers参数决定workers数量。这个统计参数显示了当前线程承受的饱和等级。                                          如果以一个并行线程序列趋近与饱和,这个数会递增,线程复制时间会被推迟,避免达到线程序列限制。 Waited due to a Worker queue full:      因为worker队列爆满,协调线程必须等待该统计参数会增长 Waited due to the total size:  该参数代表因为达到了可用内存的限制,worker队列持有未应用事件造成协调线程睡眠的次数。                                如果这个值持续增长,需要增大slave_pending_jobs_size_max值来避免协调线程等待时间。 slave_pending_jobs_size_max:  此变量代表用于保存尚未应用的事件的从worker队列的最大内存量(以字节为单位),如果没有启动mts,修改该参数不会有任何效果。                               (v8.0.11之前默认值为16M,v8.0.12默认值为128M,最小值为1024,最大值为16eib) Waited at clock conflicts:     在事务之间存在依赖的情况下,该参数显示等待时间相当于冲突检测和解决方案的逻辑时间。 Waited (count) when used occupied:       协调进程监控worker足额(enough)分配的统计次数。enough定义取决于调度类型(基于每个库和时钟)

解决方案:

1.调大slave_pending_jobs_size_max值show variables like 'slave_pending%'; +-----------------------------+----------+ | Variable_name               | Value    | +-----------------------------+----------+ | slave_pending_jobs_size_max | 16777216 | +-----------------------------+----------+ 1 row in set (0.00 sec) set global slave_pending_jobs_size_max=16777216*16; show variables like 'slave_pending%'; +-----------------------------+-----------+ | Variable_name               | Value     | +-----------------------------+-----------+ | slave_pending_jobs_size_max | 268435456 | +-----------------------------+-----------+ 1 row in set (0.00 sec)

相关推荐