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

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

我的服务器遇到了加载问题,尽管我是一个有经验的 Linux 管理员,但我现在却没有主意了。

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

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

该服务器主要运行 Lighttpd、几个 FastCGI PHP 进程和一个 MySQL 数据库。典型的 Web 服务器任务。

CPU 从未真正完全用完,内存主要用于缓冲区和缓存,这很好。我尝试重新启动各种服务,看看其中是否有一个可以再次降低负载,但没有成功。

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

那么,问题是:什么原因导致负载缓慢但不断增加?我如何找出原因?

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

答案1

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

答案2

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

查找状态为“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]

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

答案3

我猜服务器的 IO 不足,也许你应该将 iotop 统计数据添加到图表中

我想知道您是否可以有一个每个应用程序的 io 活动,这也是服务器负载的一个因素

http://rt.wiki.kernel.org/index.php/I/Otop_utility

其他工具是 dstat

答案4

此类问题通常来自硬盘速度不够快,无法为 MySQL 数据库和 HTTP 服务器提供所需的数据。您应该查看 iostat 命令

相关内容