/proc/loadavg 中的数字在 Linux 上是什么意思?

新手上路,请多包涵

在 Linux 上发出此命令时:

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

前三个数字是平均负载。最后2个数字是多少?

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

原文由 Ulterior 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 448
2 个回答

/proc/loadavg

该文件中的前三个字段是负载平均数据,给出了运行队列(状态 R)或等待磁盘 I/O(状态 D) 中 1、5 和 15 分钟的平均 作业数。它们与 uptime(1) 和其他程序给出的平均负载数相同。

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

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

原文由 auselen 发布,翻译遵循 CC BY-SA 4.0 许可协议

我想评论接受的答案。

第四个字段由两个用斜杠 (/) 分隔的数字组成。其中第一个是当前正在执行的内核调度实体(进程、线程)的数量;这将小于或等于 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) 手册页中的当前解释(截至 2009 年 3 月的手册页版本 3.21)是错误的。它将第四个字段的第一个数字报告为当前正在执行的调度实体的数量,因此预测它不能大于 CPU 的数量。这与实际实现不匹配,该值报告当前可运行线程的数量。

原文由 user184968 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题