美文网首页我用 LinuxLinux学习之路
Linux 中的 Load Averages 是什么意思

Linux 中的 Load Averages 是什么意思

作者: 风味沙拉 | 来源:发表于2019-07-23 08:33 被阅读4次

最近在研究 Linux 性能问题时,碰到一个难以理解的术语 Load Averages。有很多文章和书籍对此做了解释,但是看完之后仍是不甚明白。

我研读了一些文章,下面总结出来,希望对大家有所帮助。

Load Averages 的意义

Linux 里的 wtopuptime 等命令都能够显示 Load Averages 信息。

$ uptime

22:21  up 7 days,  4:51, 3 users, load averages: 0.87 1.05 0.93
# top
top - 17:04:58 up 2 days, 17:17,  4 users,  load average: 0.23, 0.11, 0.08
Tasks: 257 total,   1 running, 256 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.5%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8173440k total,  8118352k used,    55088k free,   193856k buffers
Swap:  4104596k total,   195272k used,  3909324k free,  3981668k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16784 root      15   0 12860 1248  840 R    1  0.0   0:00.43 top
 4157 root      16   0 10252  708  608 S    0  0.0   1:15.50 hald-addon-stor
...

这里的 Load Averages 指的是系统平均负载(System Load Averages),包括正在运行的进程和正在等待的进程对于系统的压力,不仅包括正在运行的进程和正在等待的进程对 CPU 的压力,也包括正在运行的进程和正在等待的进程对磁盘的压力(I/O);或者可疑简单的理解为非完全空闲进程的测量度值。它测量三个时间段,即 1 分钟、5 分钟和 15 分钟。

  • 如果所有值为 0, 说明系统很空闲
  • 如果 1 分钟的值比 5 分钟、15 分钟的大,说明系统负载在上升
  • 如果 1 分钟的值比 5 分钟、15 分钟的小,说明系统负载在下降
  • 如果所有值大于 CPU 个数,那么系统有可能存在性能问题

第一个结果里显示,1 分钟的负载均值为 0.87, 5 分钟的负载均值为 1.05,15 分钟的负载均值为 0.93。对于多核系统,负载是相对于可用处理器的核数而言的。负载均值为 1,对于单核系统意味着 100% 的资源使用率,而对于双核系统仅意味着 50% 的资源使用率。

在多核系统上,负载最好不要超过可用核数。此外,“核就是核”,核如何分布在 CPU 上无关紧要。比如,两个四核=四个双核=八个单核。

如何获得系统的核数?

执行 cat /proc/cpuinfo 获取处理器信息,或者直接运行 grep 'model name' /proc/cpuinfo | wc -l 获得个数。

参考

  1. http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html
  2. https://scoutapm.com/blog/understanding-load-averages

相关文章

网友评论

    本文标题:Linux 中的 Load Averages 是什么意思

    本文链接:https://www.haomeiwen.com/subject/yrunlctx.html