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


12

我的服务器出现负载问题,即使我是一位经验丰富的Linux管理员,我现在也没主意。

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

该服务器是具有6GB RAM的AMD Athlon(tm)64 X2双核处理器6000+。它在Linux gir 2.6.26-2-amd64#1 SMP上运行Debian Stable。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
您发布的图像不再存在。如果您仍然有副本,请随时重新上传它们。
迈克尔·汉普顿

Answers:


6

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


是。检查“ 进程数 ”图。
Teddy

如果这是正确的,则键入for N in {1..100} ; do sleep 60 & done ; exec sleep 500应该足以引起高负载。但事实并非如此。该命令产生100个僵尸,但我的计算机上的负载保持在低于1
kasperd

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]

因此,这些似乎是问题所在。我现在需要找出那些进程挂起的时间以及如何解决它。感谢大家。


这个答案解决了我的问题。负载从0.5增加到350,并持续上升。这是由于僵尸进程试图读取已删除的远程文件夹所致。
菲利普·德尔特伊

2

我的猜测是服务器IO饥饿,也许您应该将iotop统计信息添加到图表中

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

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

其他工具是dstat


我还为IOStat添加了图形。磁盘IO不会随负载增加而增加。那是你的目标吗?
Andreas Gohr,2009年

哦,dstat看起来很有用。我必须阅读更多有关它的内容。
Andreas Gohr,2009年

2

如果是I / O,则他会在cpu图表上看到iowait(粉红色)。


0

这类问题通常来自硬盘,其存储速度不足以提供MySQL数据库和HTTP服务器所需的数据。您应该看一下iostat命令


IO对我来说看起来很正常。它并不能解释为什么负载缓慢增加。
Andreas Gohr,2009年

-1

总的来说,服务器负载高并不是一件坏事。这意味着您不会闲着,做不到的事。通常会追求总容量的80%-90%负载(带有“爆发”空间)。我建议检查mpstat和vmstat的输出。特别是,vmstat的前两个数字可以为您提供关于运行队列中的进程的“备份”程度的更有意义的信息。vmstat输出的最后一列(“ wa”)可以告诉您是否正在等待I / O完成以及持续多长时间。运行队列大小和I / O等待时间通常是相关的。还要检查sar(从sysstat软件包中获取):它使您可以详细了解一段时间内发生的事情。它记录的指标非常详尽。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.