如何查找 Linux 中消耗最多 CPU 的进程

如何查找 Linux 中消耗最多 CPU 的进程

在我的 Linux 机器上,有一个脚本在 while(true) 循环内访问 mysql。它导致我的 CPU 使用率达到 99%-100%。但我找不到究竟是什么脚本在做这件事。以下是脚本代码。

while (true) {
    $con = mysql_connect("localhost","root","root");
    mysql_select_db("test_db", $con);

    $result = mysql_query("SELECT * FROM hs_hr_employee");
    mysql_close($con);
}

我尝试通过 top 命令来识别具体的进程。结果如下。 在此处输入图片描述

尽管这表明 mysqld 占用了 100% 的 CPU 使用率,但这并没有告诉我导致此问题的具体脚本是什么。

然后我尝试使用 ps 命令来找出有关此问题的任何提示。

ps -aux | grep mysqld

输出如下。 在此处输入图片描述

它也没有给出有关正在运行的 php 脚本的任何提示。在这种情况下,我们如何才能准确排除故障以识别出导致问题的脚本和命令。请帮我解决这个问题。

提前致谢。

答案1

告诉mysql服务器记录需要超过 X 秒才能完成的查询。

Mysql 慢查询日志

答案2

sudo apt-get install powertop
sudo powertop

标准软件包是版本 1.x,并给出酷列表中每个进程的 CPU 使用率百分比,较新的版本(如 2.x)显示功耗 YAY(仅适用于英特尔芯片 :/)

相关内容