cpu的核数和进程_通俗讲解 CPU Load 和 CPU 使用率的区别

为什么服务器的CPU load值很⾼,但是CPU使用率却很低?

CPU使⽤率和CPU load值都很高,怎么办?

作为Linux运维工程师应该怎么设置报警规则,既能较快反映CPU的故障⼜能保障零误报率?

cae7d92e1aeb2dbfa2e9aab3bdfa5574.png

CPU作为最重要的系统指标之一,对Linux运维⼯程师来讲,并不陌生。但是小编在工作中却常常发现,有的Linux运维⼯程师会将CPU使用率和CPU平均负载两个概念混淆,难以准确的解释CPU平均负载到底是什么。

今天小编来和⼤家交流下“CPU平均负载”这一概念。

一、查看CPU平均负载

执行top或uptime命令查看,如图:

cd39e21f15874c2e94064c5ee51572b1.png

load average显示的3个值,即为CPU在1分钟、5分钟、15分钟内的平均负载。

三个不同时间段内的平均值,让我们更全面、更立体的了解了目前的CPU负载状态。就像我们通常要结合早上、中午、晚上三个时间点的温度才能了解一天的天气情况。

二、CPU平均负载和CPU使用率不是一码事!

最常见的一个错误理解:”平均负载是单位时间内的CPU使用率“。即CPU平均负载值为2,就代表CPU使用率是200%。

让我们来通过uptime命令的man帮助来了解一下CPU平均负载的概念。

762683b3a4be4e484b1d0cf425d8f5d9.png

红框部分的第一句话是:

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数。即CPU平均负载值为2时, 是代表CPU上处于可运行状态和不可中断状态的进程是2个。

还需要注意的一点,平均负载的概念中所涉及的进程中有2种状态,“可运行状态”和”不可中断状态“。也就是说,它不仅包含了正在使用CPU的进程,还包含等待CPU和等待I/O的进程,即:

  • CPU密集型进程,使用大量CPU会导致平均负载升高,此时两者是一致的。
  • I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使⽤率不一定很高。

三、何为CPU平均负载正常

第一问:应该关注3个平均负载值中的哪⼀个?

答:都要看。

如前⽂所述,我们通过查看CPU在1分钟、5分钟、15分钟内平均负载来了解系统负载的趋势,从而对系统的负载情况做出判断。

  • 如果1分钟、5分钟、15分钟的三个值基本相同或相差不大,意味着系统负载很平稳。
  • 如果1分钟的值远小于15分钟的值,意味着系统最近1分钟的负载在减少,而过去15分钟内有较高的负载。
  • 如果1分钟的值远大于15分钟的值,意味着最近1跟中的负载在增加。这种增加有可能只是临时性的,也有可能还会持续增加,所以要持续观察。

第二问:平均负载数值为多少时是正常的?

答:取决于CPU核数。 假设CPU平均负载的值为2,则:

  • 如果是单核CPU,意味着有一半的进程竞争不到CPU,资源很紧俏,供不应求。
  • 如果是2核CPU,意味着CPU刚好被完全占用,供需平衡。
  • 如果是4核CPU,意味着CPU有50%的空闲。

小编建议,当平均负载的值为CPU核数的70%(即如果是2核CPU,那么平均负载值持续在1.4时)时,就需要分析排查负载高的问题了。

一旦负载过高,就可能导致进程响应变慢,进而影响服务的正常功能。

第三问:如何找出平均负载升高的根源?

答:使用mpstat查看所有CPU的平均指标和每个CPU的性能指标,使用pidstat实时查看进程的CPU、内 存、I/O以及上下文切换等性能指标。

8d0e9a6dbe2b210b066c93ed9f7922f9.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值