LINUX平均负载

我的服务器负载跳高22位,CPU只有50%,RAM 1858/5120。 如何知道什么程序如此高的平均负载。 Linux Debian

$ grep processor /proc/cpuinfo |wc -l 4 

这给你的系统上的CPU数量。 如果负载平均值高于这个数字,但是CPU只有50%,那么你的系统很可能会执行很多IO。 在这种情况下:

 aptitude install iotop 

iotop会给你一个消耗磁盘IO的进程列表。

如何知道什么程序如此高的平均负载。

您可以使用top ,按O (o大写),按照l (CPU时间)和Enter键

僵尸程序也会影响平均负载,可以build议:

 mike@mike-:~$ ps -eo state |uniq -c 171 S 1 R 1 D 2 S 

– >这里你可以计算每个状态的进程数

D(进程阻塞等待资源)

Z僵尸

– > D状态的典型问题,一个进程使用NFS共享上的文件,谁不能回答…希望它有帮助

你可以使用这三个命令之一。 阅读maninfo页面以获取更多信息。

正常运行时间 – 告诉系统已经运行了多长时间。

w – 显示谁login了,他们在做什么。

顶部 – 显示Linux进程

所有这三个命令都会显示load average信息。 top可能是最好的select,因为它显示有关CPU使用率,内存使用情况,优先级等信息。

我从一个课程的参考引用:

负载平均值是给定时间段内负载数量的平均值。 它考虑到的过程是:

  • 主动在CPU上运行。
  • 考虑到可运行,但等待CPU变得可用。
  • 睡觉:即等待某种资源(通常是I / O)变得可用。

我进一步解释平均负荷

使用三组不同的数字显示负载平均值,如以下示例所示:

最后一条信息是系统的平均负载。 假设我们的系统是一个单CPU系统,0.25意味着在过去的一分钟里,系统平均使用了25%。 在下一个位置0.12意味着在过去的5分钟,系统平均利用率为12% 最终位置为0.15,这意味着在过去的15分钟内,系统平均利用率为15%。 如果我们在第二个位置看到1.00的值,这意味着单CPU系统平均在过去5分钟内被100%利用; 如果我们想充分使用一个系统,这是很好的。 对于单CPU系统,超过1.00的值意味着系统过度使用:需要CPU的进程数多于CPU可用数量。

如果我们有一个以上的CPU,比如一个四CPU系统,我们会把负载平均数除以CPU的数量。 在这种情况下,例如,一个1分钟的平均负载为4.00意味着整个系统在最后一分钟是100%(4.00 / 4)。

短期涨幅通常不成问题。 你看到的高峰可能是一个活动的爆发,而不是一个新的水平。 例如,在启动时,许多进程开始,然后活动安定下来。 如果在5分钟和15分钟的负荷平均值出现高峰,可能会引起担忧。