linux cpu loading,Linux - 系统指标 CPU load

cpu load

cpu load通常做为一个机器负载的衡量指标

cpu load是对使用或者等待cpu进程的统计(数量的累加)。每一个使用(using)或者等待(waiting)CPU的进程(process),都会使load值+1。

每一个结束的(teminates)进程,都会使load值-1。

所谓使用CPU的进程,是指状态为running的进程,或者说是在cpu run queue里的进程。

所谓等待CPU的进程,是指状态为runnable的进程,或者说是在cpu ready queue里的进程。

大部分Unix操作系统只计算running和runnable的进程。但是Linux系统除了上述两种状态进行,还计算uninterruptible sleep状态的进程(通常是在等待磁盘IO)。因此,如果有很多进程被block在IO处,Linux系统显示的load会被Unix系统高一些。举个例子,如果有进程由于NFS服务挂掉或者USB设备太慢而block住的话,会显示一个奇怪的现象:cpu使用率不高,但是cpu load很高。

cpu load average

通常,我们关注的不是cpu load,而是cpu load average这个指标。

所有的Unix和类Unix操作系统,都有3个"load average"的统计指标。分别表示1分钟、5分钟和15分钟内的cpu负载均值。

使用uptime命令是查看cpu负载最简单的命令:

$ uptime

14:34:03 up 10:43, 4 users, load average: 0.06, 0.11, 0.09

当然,w和top命令也包含cpu load信息。

top命令:

02825a66e46f?from=timeline@

image.png

w命令:

02825a66e46f?from=timeline@

image.png

load average的意义

load average是个无量纲的,大致可认为是cpu进程队列中进程的数量和cpu可处理能力的比值。比如cpu最多同时能处理10个进程,

如果队列中进程数量为5,load average为50%,说明cpu还没达到负载上限

如果队列中进程数量为10,load average为100%,说明刚好达到负载上限

如果队列中进程数量为15,load average为150%,说明超出了cpu的处理能力

单个cpu的load average为0.7以上时,需要注意是否快达到了服务能力的瓶颈。

cpu load和cpu utilization

cpu load(cpu负载)相较于cpu utilization(cpu使用率)更能反映机器的负载情况。

因为,假如有两个配置相同的机器,一个机器cpu utilization是50%,另一个是70%,我们可以认为70%的机器负载比50%的高。但是如果两个机器的cpu use都是100%的话,谁的负载更高,就不得而知了。而cpu load是可以反映出来的。

比如两个机器的per cpu load分别是1.5和1.8,但是他们的cpu use都是100%。但是我们依旧可以知道哪台机器负载更高。

假如在一个单核机器上,load average是"1.73 0.60 7.98",那么可以大致这么解释:

在过去1分钟中,系统负载超额73%。(1.73个runnable进程,但是有0.73个进程需要等待)

在过去5分钟中,系统负载有40%空闲

在过去15分钟中,系统负载超额698%。(7.98个runnable进程,但是有6.98个需要等待)

参考

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值