在我的 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 秒才能完成的查询。
答案2
sudo apt-get install powertop
sudo powertop
标准软件包是版本 1.x,并给出酷列表中每个进程的 CPU 使用率百分比,较新的版本(如 2.x)显示功耗 YAY(仅适用于英特尔芯片 :/)