最近遇到了一个奇怪的问题,想知道是否有人能提供一些信息。我正在运行一个 mysql 复制设置,其中有 1 个主服务器和 3 个从服务器。大约每 3 小时,主服务器上的 binlog 就会填满并轮换到新的 binlog。发生这种情况时,主服务器会挂起,并且所有连接都会被填满。
为了让它运行,我一直在重新启动 MySQL。出现问题时,磁盘访问几乎为 0(根据 vmstat,只有大约 100 个块的读取),我有超过 1GB 的可用 RAM。MySQL 消耗的 CPU 很少(大约 20%),平均负载接近0. 无交换等等。
这就像 MySQL 放弃尝试完成任何查询,结果连接队列就被填满了。
MySQL 5.1.47 CentOS 5.5
就像我说的,这个问题恰好发生在主服务器轮换 binlog 的时候,我将 expire_log_days 设置为 7,因此它也会删除日志文件,并且它似乎特定于这次删除,而不是创建新的日志文件。如果我执行手动 FLUSH LOGS,服务器就不会出现问题。
非常感谢任何人的意见。