我的服务器负载跳高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共享上的文件,谁不能回答…希望它有帮助
你可以使用这三个命令之一。 阅读man或info页面以获取更多信息。
正常运行时间 – 告诉系统已经运行了多长时间。
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分钟的负荷平均值出现高峰,可能会引起担忧。