EC2 Amazon Linux AMI MySQL CPU @ 62%空闲时?

我在Amazon Linux AMI上运行MySQL。 没有任何连接。 没有连接,没有其他应用程序运行使用MySQL。 这是完全闲置,但是, top是报告说,MySQL正在使用62%的CPU? 为什么会发生这种情况,我该如何解决?

 Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 97.8%id, 0.0%wa, 0.0%hi, 0.0%si, 1.7%st Mem: 1738504k total, 390708k used, 1347796k free, 56888k buffers Swap: 917500k total, 0k used, 917500k free, 229804k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2959 mysql 20 0 466m 39m 5244 S 62.2 2.3 4:00.67 mysqld 1 root 20 0 19252 1504 1212 S 0.0 0.1 0:00.20 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 

没有连接…

 mysql> show processlist; +----+------+-----------+------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+------+---------+------+-------+------------------+ | 5 | root | localhost | NULL | Query | 0 | NULL | show processlist | +----+------+-----------+------+---------+------+-------+------------------+ 

更新:我的问题肯定与Lead Second bug有关。 荣誉nico-ekito 。 谢谢!

我能想到的唯一的事情就是以root用户身份来检查使用strace的mysqld在做什么。

  strace -p 2959 

通常,strace应该立即阻塞,并显示给select()的调用,因为mysqld应该等待连接。

这个电话应该是这样的:

  select(SOCKETNO, [OTHER_FDs], NULL, NULL, NULL) 

尤其重要的是第四个参数,即timeoutvalue。 如果为NULL,则意味着mysqld将会睡眠,直到有人连接。 如果不是NULL,则表示mysqld将等待指定的时间,然后执行一些维护工作。 一个非常小的timeval可能会解释CPU消耗。

我相信MySQL总是使用NULL(无限)超时。 这是有道理的,这是我现在能够达到的mysqld是如何表现。

但是,可能会有一些连接处理问题阻止select再次进入休眠状态。 检查这个行为是否在mysqld启动后立即出现,或者是否有人连接。

结束这个问题。 我的问题确实与闰秒的失败有关。