如何检测在服务器上产生高负载的进程(和 mysql 查询)?

chu*_*byk 1 mysql high-load

我的服务器(centos 4)上的负载有时会跳到 15 或更多。我需要发现是什么进程导致服务器上的高负载。有什么脚本可以为我处理这个问题吗?我认为它是由 mysql 引起的,所以即使发现 sql 查询也会有很大帮助。

qua*_*nta 5

高服务器负载通常由磁盘 I/O 引起。有一些方法可以识别哪个进程正在等待磁盘 I/O:

  • iotop
  • top -b -i -n 10
  • atop 并按下 D
  • htop->F2添加 2 列IO_RBYTESIO_WBYTES,然后F6进行排序
  • ...

尤其要注意D状态(uninterruptible sleep)中的进程:

watch "ps -eo pid,user,state,command | awk '\$3 == /D/ { print \$0 }'"
Run Code Online (Sandbox Code Playgroud)