• 售前

  • 售后

热门帖子
入门百科

详解Linux CPU负载和CPU使用率

[复制链接]
dgx3529361 显示全部楼层 发表于 2021-10-26 14:09:05 |阅读模式 打印 上一主题 下一主题
CPU负载和 CPU利用率
这两个从肯定水平上都可以反映一台呆板的繁忙水平.
cpu利用率反映的是当前cpu的繁忙水平,忽高忽低的原因在于占用cpu处理时间的进程大概处于io等待状态但却还未释放进入wait。
平均负载(load average)是指某段时间内占用cpu时间的进程和等待cpu时间的进程数,这里等待cpu时间的进程是指等待被唤醒的进程,不包括处于wait状态进程。
以上分析可以看出,一台呆板很有大概处于低cpu利用率高负载的环境,因此看呆板的繁忙水平应该结合两者,从实际的利用环境观察,本身的一台双核志强2.8GHZ,2G内存的呆板在平均负载到50左右,cpu利用率才接近100%(应用有不少io操作),这种环境下应用还算流畅,实际访问延伸不是很高。因此在cpu还空闲的环境下,怎样提高io相应是减少负载的关键,很多人认为负载到几十了呆板就非常繁忙了,我倒以为如果这个时候cpu利用率比较低,则负载高大概不能很好说明标题,一旦cpu处理的进程处理完后,那些等待的进程也能立刻得到相应,这种环境下应该优化io读写速度。真到cpu利用率一直90%以上,纵然平均负载只有个位数(比如某一个进程一直在运算),那呆板其实也已经繁忙了~
其实,在前面的文章中,也有写到cpu利用率低负载高,原因分析 cpu利用率低,但是load很高,load很高的大概是IO
CPU负载的一个类比
判定体系负荷是否过重,必须明白load average的真正寄义。下面,我根据"Understanding Linux CPU Load"这篇文章,实验用最通俗的语言,解释这个标题。
首先,假设最简单的环境,你的电脑只有一个CPU,全部的运算都必须由这个CPU来完成。
那么,我们不妨把这个CPU想象成一座大桥,桥上只有一根车道,全部车辆都必须从这根车道上通过。(很显然,这座桥只能单向通行。)
体系负荷为0,意味着大桥上一辆车也没有。
体系负荷为0.5,意味着大桥一半的路段有车。
体系负荷为1.0,意味着大桥的全部路段都有车,也就是说大桥已经"满"了。但是必须注意的是,直到此时大桥照旧能顺畅通行的。
体系负荷为1.7,意味着车辆太多了,大桥已经被占满了(100%),后面等着上桥的车辆为桥面车辆的70%。以此类推,体系负荷2.0,意味着等待上桥的车辆与桥面的车辆一样多;体系负荷3.0,意味着等待上桥的车辆是桥面车辆的2倍。总之,当体系负荷大于1,后面的车辆就必须等待了;体系负荷越大,过桥就必须等得越久。
CPU的体系负荷,根本上等同于上面的类比。大桥的通行本事,就是CPU的最大工作量;桥梁上的车辆,就是一个个等待CPU处理的进程(process)。
如果CPU每分钟最多处理100个进程,那么体系负荷0.2,意味着CPU在这1分钟里只处理20个进程;体系负荷1.0,意味着CPU在这1分钟里正长处理100个进程;体系负荷1.7,意味着除了CPU正在处理的100个进程以外,还有70个进程正列队等着CPU处理。
为了电脑顺畅运行,体系负荷最好不要凌驾1.0,如许就没有进程须要等待了,全部进程都能第一时间得到处理。很显然,1.0是一个关键值,凌驾这个值,体系就不在最佳状态了,你要动手干预了。
CPU负载-多处理器
上面,我们假设你的电脑只有1个CPU。如果你的电脑装了2个CPU,会发生什么环境呢?
2个CPU,意味着电脑的处理本事翻了一倍,能够同时处理的进程数量也翻了一倍。
照旧用大桥来类比,两个CPU就意味着大桥有两根车道了,通车本事翻倍了。
以是,2个CPU表明体系负荷可以到达2.0,此时每个CPU都到达100%的工作量。推广开来,n个CPU的电脑,可担当的体系负荷最大为n.0。
CPU负载-多核处理器
芯片厂商每每在一个CPU内部,包罗多个CPU焦点,这被称为多核CPU。
在体系负荷方面,多核CPU与多CPU效果雷同,以是思量体系负荷的时候,必须思量这台电脑有几个CPU、每个CPU有几个焦点。然后,把体系负荷除以总的焦点数,只要每个焦点的负荷不凌驾1.0,就表明电脑正常运行。
怎么知道电脑有多少个CPU焦点呢?
"cat /proc/cpuinfo"命令,可以查察CPU信息。"grep -c 'model name' /proc/cpuinfo"命令,直接返回CPU的总焦点数。
体系负荷的履历法则
1.0是体系负荷的抱负值吗?

不肯定,体系管理员每每会留一点余地,当这个值到达0.7,就应当引起注意了。履历法则是如许的:
      
  • 当体系负荷连续大于0.7,你必须开始调查了,标题出在哪里,防止环境恶化。  
  • 当体系负荷连续大于1.0,你必须动手探求办理办法,把这个值降下来。  
  • 当体系负荷到达5.0,就表明你的体系有很严重的标题,长时间没有相应,大概接近死机了。你不应该让体系到达这个值。
对于我的呆板,有24个core,那么,load多少符合呢?
  1. [root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA]#grep 'model name' /proc/cpuinfo | wc -l24
复制代码
答案是:
  1. [root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA]#echo "0.7*24" |bc16.8
复制代码
最佳观察时长
末了一个标题,"load average"一共返回三个平均值----1分钟体系负荷、5分钟体系负荷,15分钟体系负荷,----应该参考哪个值?

如果只有1分钟的体系负荷大于1.0,其他两个时间段都小于1.0,这表明只是临时现象,标题不大。

如果15分钟内,平均体系负荷大于1.0(调解CPU焦点数之后),表明标题连续存在,不是临时现象。以是,你应该重要观察"15分钟体系负荷",将它作为电脑正常运行的指标。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作