MySQL 的 CPU 使用率达到 400%?什么情况?我该怎么办?

MySQL 的 CPU 使用率达到 400%?什么情况?我该怎么办?
  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>

这些是我在 Ubuntu 上的结果top。我很好奇为什么我的网站今天一直宕机。可能是这个原因吗?

为什么 MySQL 占用了 386% 的 CPU?这是正常的吗?我该怎么做才能解决这个问题?

答案1

...从哪儿开始。

如果您的网站确实很繁忙,并且您可以证明使用是合理的,那么这是正常的。但是,很有可能是一些非优化查询和糟糕的表结构导致了您的大部分问题。

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

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

要全面解决这个问题,您确实需要戴上 DBA 的帽子,然后从那里开始。如果您不具备这方面的知识或技能,那么聘请合同制 DBA 来查看这个问题并提供建议可能更容易。

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

相关内容