【MySQL】MySQL错误日志中的Multi-Threaded Slave Statistics
2022-07-14 16:31 abce 阅读(1799) 评论(0) 收藏 举报本文讨论的是打印在mysql错误日志中的多线程复制统计信息。
MySQL 5.6开始支持多线程复制,即Multi-Threaded Slave (MTS)。
开启多线程复制,需要修改参数slave_parallel_workers成大于1的值。开启多线程复制后,在错误日志中可能会看到以下类似的信息:
[Note] Multi-threaded slave statistics for channel '': seconds elapsed = 35863; events assigned = 284072961; worker queues filled over overrun level = 0; waited due a Worker queue full = 0; waited due the total size = 66921074; waited at clock conflicts = 77316754445700 waited (count) when Workers occupied = 68746380 waited when Workers occupied = 13810763700
其中:
worker queues filled over overrun level = 0;
当协调器线程因为worker队列满了而必须等待时,该计数器就会增加。
waited due the total size = 66921074;
协调器线程休眠的次数,当worker队列没有被应用,达到了内存的限制,协调器线程就会休眠。如果该统计信息持续增加,可能需要增加slave_pending_jobs_size_max的大小,来减小协调线程的等待时间。
waited at clock conflicts = 77316754445700
在事务之间可能存在依赖关系的情况下,此统计显示与逻辑时间戳冲突检测和解决相对应的等待时间。
waited (count) when Workers occupied = 68746380
协调线程看到worker线程被分配”足够的“任务的次数计数器。这里”足够“定义取决于调度程序类型(每个数据库或基于时钟)。
waited when Workers occupied = 1381076370
这些是计算协调线程等待有可用worker线程的时间的统计信息,仅适用于提交时钟调度程序(Commit-clock scheduler)。