Linux 新手:第一次看 top,load average 三个数到底在说什么
【摘要】 第一次看 top 时,load average 的三个数不是 CPU 百分比,而是 1、5、15 分钟的排队平均长度。本文讲清如何对照核数看趋势、区分 CPU 不足与磁盘 I/O 等待,并给出每次看 top 的固定顺序。
Linux 新手:第一次看 top,load average 三个数到底在说什么
第一次在服务器上敲 top,第一行那三个数字最容易把人看懵:load average: 0.50, 0.80, 1.20。这三个数是什么意思?是不是越大越危险?今天一次讲清楚。
三个数是三个时间窗口的平均值
这三个数依次是过去 1 分钟、5 分钟、15 分钟的系统平均负载。它们不是 CPU 使用率,也不是百分比,而是一个“排队长度”的平均值:有多少进程正在使用 CPU,或者正在排队等 CPU。
所以读这三个数要连起来看趋势:1 分钟的值比 15 分钟的高,说明负载正在上升;反过来,说明负载正在回落。只看某一个数,容易误判。
判断高低,要先看你有几核
负载本身没有绝对的好坏标准,必须对照 CPU 核数。先跑 nproc 看核数,再对比:
- 4 核机器,load 长期在 4 左右,说明 CPU 刚好跑满,不算过载。
- 4 核机器,load 长期在 8 以上,说明进程排队严重,响应会变慢。
- 1 核机器,load 长期超过 1,就已经在排队了。
新手最常见的误解,是把 load 1.0 当成“用了 100%”。不是的。load 1.0 在 1 核机器上是刚好跑满,在 8 核机器上只用了八分之一。脱离核数谈 load,没有意义。
负载高,但 CPU 没跑满,怎么回事
还有一种情况更迷惑人:load 很高,可 CPU 使用率并不高。这时多半是进程在等磁盘 I/O。Linux 把“正在等磁盘”的进程也算进负载里(在 top 里对应 D 状态,%wa 这一列能看到 I/O 等待的比例)。
怎么区分:进 top 后看 %wa。如果 %wa 长期很高,先查磁盘而不是加 CPU:看看是哪个进程在大量读写,是不是日志打爆了、备份任务撞上了业务高峰。只盯着 CPU 扩容,解决不了 I/O 引起的排队。
新手看 top 的固定顺序
以后每次打开 top,按这个顺序看,不容易跑偏:
- 第一行看 load average 三个数,判断趋势是升还是降。
- nproc 看核数,对照判断是不是真的过载。
- 看 %us(用户进程 CPU)和 %wa(I/O 等待),分清是算力不够还是磁盘在拖后腿。
- 按 Shift + P 按 CPU 排序,找到最耗 CPU 的进程;按 Shift + M 按内存排序,找到最耗内存的进程。
- 想看更细的趋势,用 vmstat 1 每秒刷新一次,看 CPU、内存、I/O 的变化。
记住一句话就行:load average 是排队的平均长度,不是 CPU 的百分比;对照核数看趋势,再分清是 CPU 还是磁盘的问题,就不会被这三个数吓住了。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)