我对最近遇到的所有运行MySQL的EC2实例遇到的问题感到非常好奇。 7 月 1 日凌晨 12:00 UTC,我的两个 Amazon EC2 实例(在美国东部区域运行)都触发了指示 CPU 使用率较高的警报。 我调查发现是MySQL吞噬了所有的CPU。 我登录并运行SHOW PROCESSLIST
发现没有查询正在运行(这些服务器在下班后不会受到太多攻击)。 我停止了MySQL,CPU利用率回落到1-3%(正常情况)。 我重新启动了MySQL,它又开始消耗大量的CPU。 然后,我重新启动了服务器shutdown -r now
,问题消失了。 两台服务器都有完全相同的问题(运行 Ubuntu 12.04 LTS)。
我在系统日志中看到的唯一相关项目是:
Jun 30 23:59:59 hostname kernel: [14152976.187987] Clock: inserting leap second 23:59:60 UTC
我不认为我为MySQL启用了日志记录;无论Ubuntu 12.04的默认设置是什么,我正在使用什么。 如果有任何区别,大多数数据库都是InnoDB。
一天前,一个实例受到 EBS 连接问题的影响,导致服务器在访问磁盘时响应极慢。 我不相信另一个实例受到影响(它在另一个AWS账户中并且在"中断"期间响应良好),但我不能100%确定。 我想知道这是否会导致MySQL发疯? 但为什么要等到午夜呢? (小心!这可能是这个谜团中的"红鲱鱼")
关于可能导致此问题的原因的任何想法?
原因是闰秒错误。你可以在任何地方找到关于这方面的帖子:)
在此处或服务器故障上阅读更多信息
一个快速的解决方案是停止 ntpd 守护程序,同步时钟并重新启动守护进程。当然,一些系统更新不会伤害:)
看看这个。我认为这就是您遇到的问题。