2012-08-16 61 views
54

当issueing从Linux命令:的Linux的/ proc/loadavg

# cat /proc/loadavg 
0.75 0.35 0.25 1/25 1747 

什么是最后的2号?

最后一个每秒增加2个,我应该担心吗?

回答

13

前三列测量最后一个,五个和十五分钟时间段的CPU和I/O利用率。第四列显示当前正在运行的进程的数量和进程的总数。最后一列显示使用的最后一个进程ID。

https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-proc-loadavg.html

(我寻找答案,这样你就可以做到这一点,太。)

+1

非常感谢,我没有,但我只拿到了垃圾信息的https://duckduckgo.com/?q=proc%2Floadavg&t=canonical链接 – Ulterior 2012-08-16 12:52:32

+0

第二主打 – 2012-08-16 12:53:04

+2

我坚决反对这个定义。前三个数字并不直接测量CPU和I/O利用率*,它们是运行队列中或等待I/O的平均作业数,正如@auselen的回答所述。 – Jan 2017-05-17 12:40:57

48

最后一个是系统的最后15分钟的工作量。

/proc/loadavg

在该文件中的前三个字段是负载给予 的在运行队列中(状态R)的作业的数量或等待磁盘 I/O(状态d)平均平均图超过1,5和15分钟。它们是 ,与正常运行时间(1)和其他 程序给出的平均负载数相同。

第四个字段由两个数字组成,用 斜杠(/)分隔。其中第一个是当前正在执行的内核调度实体(进程,线程)的数量;这将比CPU的数量少或等于 。斜杠后面的值是 系统上当前存在的内核调度实体的 数量。

第五个字段是最近在系统上创建的最为 的进程的PID。

9

我想对接受的答案发表评论。

第四个字段由用斜杠(/)分隔的两个数字组成。其中第一个是当前正在执行的内核调度实体(进程,线程)的数量;这将小于或等于 个CPU数量。

我做了一个测试程序,从输入中读取整数N,然后创建N个线程,并且它们永远运行它们。在RHEL 6.5计算机上,我有8个处理器,每个处理器都有超线程。无论如何,如果我运行我的测试,它会创建128个线程,我看到在第四个字段值大于128,例如135.它显然比CPU的数量更大。这个帖子支持我的观察:http://juliano.info/en/Blog:Memory_Leak/Understanding_the_Linux_load_average

值得注意的是,在PROC当前的解释(5)手册 (作为人的页面版本3.21,2009年3月)是错误的。它报告 第四个字段的第一个数字作为当前正在执行的 调度实体的数量,因此预测它不能大于 个CPU数量。这与实际实现不匹配,其中此值报告当前可运行线程的数量。

+1

可以确认:kernel/sched/core.c nr_running()将自己描述为收集* runnable *而不是*运行*任务。 – fche 2016-04-08 14:13:53