为什么一个过程需要这么多的资源

我的网站很慢或无响应。 快速查看top命令可以看到如下的情况:

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1709 mysql 20 0 828m 432m 5584 S 382.6 5.4 7414:24 mysqld 

其余的过程都低于这些值。 MySQL显然有一些问题。 我怎样才能检查到底发生了什么,为什么需要这么多的资源呢?

谢谢。

在mysql控制台中运行show processlist以获取当前正在运行的查询的列表。 找一些已经跑了一段时间,看看他们在做什么。 机会是有几个查询做怪物工作量(通常是由于索引不佳)。

除了womble的回答 (指向优化您的查询)。 对于那些发现382.6%的CPU使用率令人困惑的,注意MySQL是一个multithreading服务器。 它可能是完全运行4线程,几乎垄断4核心(我相信它可以做一个足够大的机器甚至更多)。 按下top “H”分别显示每个线程。

如果启用,你也应该看看mysql的慢日志。