MySQL 400% CPU 使用率?什么?我该怎么办?

Kyl*_*yle 1 mysql memory top cpu-usage apache-2.2

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
19857 mysql     20   0  514m  47m 3404 S  386  9.7   4511:45 mysqld
15659 www-data  20   0  205m  11m 4856 S    7  2.3   0:00.67 apache2
15701 www-data  20   0  205m  11m 4424 S    5  2.2   0:00.19 apache2
15700 www-data  20   0     0    0    0 Z    1  0.0   0:00.02 apache2 <defunct>
Run Code Online (Sandbox Code Playgroud)

这些是我top在 Ubuntu 上的结果。很好奇为什么我的网站今天一直在下降。会是这样吗?

为什么 MySQL 使用 386% 的 CPU?这是正常的吗?我能做些什么来修复它?

Kei*_*way 6

...从哪儿开始。

如果您的网站真的很忙并且您可以证明使用的合理性,这是正常的。然而,您可能会遇到一些非最佳查询和糟糕的表结构,这导致了您的大部分痛苦。

我可能会开始mysqladmin processlist查看哪些查询运行时间最长,然后从那里开始优化。

您还可以在 MySQL 中启用慢查询日志记录,以便更长期地了解正在发生的事情以及哪些查询给您带来了痛苦。

要全面解决此问题,您确实需要戴上 DBA 帽子并从那里开始。如果您不具备该领域的知识或技能,那么在合同基础上聘请 DBA 来查看并提供建议可能会更容易。

不幸的是,全面解决这个问题需要时间、知识和现有数据集的经验。