我们已经有超过 6 个月的主/从设置。复制从来都不是问题。如果 master 宕机,slave 不会被用于“保险单”以外的任何事情。它唯一的活动是在每天早上 2:30 停止从站并完成完整备份,然后重新启动从站。备份通常需要大约 30 分钟,从机在 10 分钟内赶上备份。
从机是一台更强大的机器(24 核对 8 核),我们只是在考虑将其切换为主机并在下周末反转复制。
昨天早上 9 点,奴隶突然开始落后了。主人没有太大的负担。真正不寻常的是从服务器上的平均负载约为 3,大约有 2% 的等待时间(如顶部所示)和大约 1/10% 的 CPU 利用率,但从服务器没有赶上。看起来它几乎处于静止状态。处理 1 秒的复制日志大约需要 10 分钟(从实际时间中减去后面的秒数)。slave IO 线程跟上 master 的 bin 日志,只是 sql 线程在爬取查询。然而,查询正在处理中,对从属状态进行监视会显示 exec 主日志位置的持续更新。
我们已经尝试停止从属 io 线程以查看它是否有帮助,它没有任何影响。好像突然之间每个查询都变得非常昂贵。
我们已经对底层的raid进行了磁盘检查,系统或mysql日志中没有任何内容表明有任何错误。我们已经多次重新启动并重新启动 mysql,清除系统缓存等......
这是在一周内没有任何代码更改并且在此事件之前没有异常操作问题的生产系统上。
我们完全不知道为什么一个没有接近峰值负载的系统似乎无法跟上主系统的速度。
我们还应该研究什么?如果可以帮助某人帮助我们确定什么是“错误”,我将很乐意在此处发布系统统计信息等。