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

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上的成果。 它很奇怪为什么我的网站今天继续下去。 这可以吗?

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

…从哪儿开始。

如果你的网站真的很忙,而且你可以certificate这个用法是正常的。 然而机会很可能是一些非优化的查询和糟糕的表结构,这些都是造成你的大部分痛苦的原因。

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

您也可以在MySQL中启用缓慢的查询日志logging,以获得有关正在发生的事情的更长期的想法,以及哪些查询正在导致您的痛苦。

为了全面解决这个问题,你真的需要戴上你的DBA帽子并从那里出发。 如果您没有这方面的知识或技能,那么以合同为基础就可以更容易地获得DBA来查看并提供build议。

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