深入理解liunx平均负载

查找系统平均负载,可以通过top或者uptime命令查看

$ uptime
14:12:35 up 289 days, 18:50,  2 users,  load average: 0.12, 0.09, 0.07

最后的三个数字,一次是过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average)。

我们经常会看,但你不一定正确的理解了平均负载的真正含义。

平均负载是单位时间内CPU的使用率吗?0.12代表CPU使用率为12%?有可能很多人是这么理解的,这么理解就错了。

如果你想看官方的解析,可以通过命令 man uptime 查看,

英文原文如下:

System load averages is the average number of processes that are either in a runnable or uninterruptable state. A process in a runnable state is either using the CPU or waiting to use the CPU. A process in uninterruptable state is waiting for some I/O access, eg waiting for disk. The averages are taken over the three time intervals. Load averages are not normalized for the number of CPUs in a system, so a load average of 1 means a single CPU system is loaded all the time while on a 4 CPU system it means it was idle 75% of the time.


下面详细的解析下什么是平均负载,平均负载是指系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和CPU使用率没有什么必然关系的

那什么是可运行状态进程和不可中断状态进程呢?

可运行状态进程是指正在使用CPU或者正在你等待CPU的进程,我们在ps命令下看到的处于Running和Runnable的进程就是可运行状态进程。

不可中断状态进程是指正处于内核态关键流程中的进程,并且这些流程是不可中断的,比如最常见的是等待硬件设备的I/O响应,我们在ps命令下看到的处于Uninterruptible Sleep的进程就是不可中断状态进程。

平均负载可以简单的理解为单位时间内系统的活跃进程数

怎样的平均负载时合理的?

最理想的情况是平均负载等于CPU个数。平均负载高于CPU个数,说明系统已经过载。

查询系统CPU个数:

grep 'model name' /proc/cpuinfo | wc -l


当一段是时间内系统的平均负载高于CPU个数的70%时,就要开始注意排查系统负载高的问题了,系统负载高了,进程的响应速度就会变慢,可能影响到系统提供的服务的正常运行。

平均负载和CPU使用率的区别
很多人在现实工作中,经常把平均负载和CPU使用率混为一谈,平均负载高了,说明活跃进程数多,并不一定CPU使用率高,
下面给大家做下总结:
平均负载是指系统处于可运行状态和不可中断状态的平均进程数,包括正在使用CPU的进程和等待CPU和等待IO的进程。
CPU使用率是指在一段时间内使用CPU情况的统计,
当系统大部分是CPU密集型进程时,两者基本时一致的;
当系统大部分是IO密集型进程时,平均负载高,但CPU使用率不一定高;
当系统有很多等待CPU进度调度的进程时,平均负载高,CPU使用率也会高。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值