如何找到导致服务器负载增加的原因

And*_*ohr 12 linux

我的服务器出现负载问题,尽管我是一位经验丰富的 Linux 管理员,但我现在已经没有想法了。

问题是服务器上的负载缓慢但稳定地增加,没有任何明显的原因。

服务器是带有 6GB RAM 的 AMD Athlon(tm) 64 X2 双核处理器 6000+。它运行带有 Linux gir 2.6.26-2-amd64 #1 SMP Wed Aug 19 22:33:18 UTC 2009 x86_64 GNU/Linux 的 Debian Stable。

该服务器基本上运行 Lighttpd、几个 FastCGI PHP 进程和一个 MySQL 数据库。典型的网络服务器任务。

CPU 永远不会真正用完,内存主要用于缓冲区和缓存,这很好。我试图重新启动各种服务,看看其中一个服务是否会再次减少负载,但没有运气。

以下是显示负载、CPU 和 IOStat 的图形:

所以,问题是:什么会导致负载缓慢但不断增加?我如何找出责任所在?

更新:我忘了提到,当我重新启动服务器时,负载将下降到 0.3 到 0.6 左右,并且在接下来的几周内将再次开始缓慢上升。

小智 6

每个僵尸进程的负载增加 1.0。您可能会看到僵尸的堆积。


And*_*ohr 5

我找到了一个很好的提示来回答一个不同的问题

查找状态为“D”的进程显示四个 PHP 进程似乎挂起很长一段时间,对应于负载曲线中的“步骤”:

#> ps aux | awk '$8 ~ /D/  { print $0 }'
wiki      6651  0.0  0.0      0     0 ?        D    Oct04   0:41 [php-cgi]
bugs      6731  0.0  0.0      0     0 ?        D    Oct27   0:14 [php-cgi]
manpages  7536  0.0  0.0      0     0 ?        D    Oct30   0:21 [php5-cgi]
wiki     23847  0.0  0.0      0     0 ?        D    Oct06   1:32 [php-cgi]
Run Code Online (Sandbox Code Playgroud)

所以这些似乎是问题所在。我现在需要找出这些进程何时挂起以及如何修复它。谢谢大家。