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

标签 mysql linux amazon-ec2 cpu-usage

我在 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 错误有关。感谢nico-ekito .谢谢!

最佳答案

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

 strace -p 2959

通常情况下,strace 应该立即阻塞并显示对 select() 的调用,因为 mysqld 应该正在等待连接。

调用应该是这样的:

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

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

我相信 MySQL 总是使用 NULL(无限)超时。这是有道理的,这就是我现在能够访问的 mysqlds 的行为方式。

但是,可能有一些连接处理问题会阻止 select 再次休眠。检查此行为是在 mysqld 启动后立即出现,还是在有人连接后出现。

关于mysql - EC2 Amazon Linux AMI MySQL CPU @ 62% 空闲时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11282376/

相关文章:

php - 为什么我的 PDO 对象返回对象(PDO)[2]

linux - ksh 将命令结果存储到变量

node.js - meteor 客户端测试在AWS上挂起,但不在本地挂起

linux - 在 EC2 (Amazon Linux) 上安装 postgres

mysql - mysql中以前的记录

mysql - 尝试通过在MySQL中添加索引来改善慢查询

PHP未定义索引使用arduino到mySQL

xml - 用于格式化 XML 文件并保留空行和注释的 CLI 工具

linux - 以另一个用户身份运行整个应用程序(root 用户以外的其他用户)

amazon-web-services - 在 AWS 中从 Lambda 启动 shell 脚本