千家信息网

linux里的CPU负载是什么

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要讲解了"linux里的CPU负载是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"linux里的CPU负载是什么"吧!查看Nagios警
千家信息网最后更新 2024年11月22日linux里的CPU负载是什么

这篇文章主要讲解了"linux里的CPU负载是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"linux里的CPU负载是什么"吧!

查看Nagios警报信息,发现其中一台服务器CPU负载过重,机器为CentOS系统。信息如下:
2011-2-15 (星期二) 17:50
WARNING - load average: 9.73, 10.67, 10.49
还有前两个小时发出的警报信息:
2011-2-15 (星期二) 16:50
WARNING - load average: 10.52, 10.10, 10.06
2011-2-15 (星期二) 15:40
WARNING - load average: 8.27, 9.23, 9.48
一、警报信息的三个参数到底是什么意思?
9.73、 10.67、10.49分别代表前一分钟,五分钟,十五分钟的平均CPU负载,最重要的指标是最后一个数字,即前15分钟的平均CPU负载,这个数字越小 越好。所谓CPU负载指的是一段时间内任务队列的长度,通俗的讲,就是一段时间内一共有多少任务在使用或等待使用CPU。
二、除了Nagios,还有哪些工具可以查看CPU负载?
可以使用top命令、uptime命令,特别是top命令,功能强大,不仅仅可以用来查看CPU负载。

三、CPU负载怎么理解?是不是CPU利用率?
这 里要区别CPU负载和CPU利用率,它们是不同的两个概念,但它们的信息可以在同一个top命令中进行显示。CPU利用率显示的是程序在运行期间实时占用 的CPU百分比,而CPU负载显示的是一段时间内正在使用和等待使用CPU的平均任务数。CPU利用率高,并不意味着负载就一定大。网上有篇文章举了一个 有趣比喻,拿打电话来说明两者的区别,我按自己的理解阐述一下。
某公用电话亭,有一个人在打电话,四个人在等待,每人限定使用电话一分钟,若有人一分钟之内没有打完电话,只能挂掉电话去排队,等待下一轮。电话在这里就相当于CPU,而正在或等待打电话的人就相当于任务数。
在 电话亭使用过程中,肯定会有人打完电话走掉,有人没有打完电话而选择重新排队,更会有新增的人在这儿排队,这个人数的变化就相当于任务数的增减。为了统计 平均负载情况,我们5秒钟统计一次人数,并在第1、5、15分钟的时候对统计情况取平均值,从而形成第1、5、15分钟的平均负载。
有的人拿起电话就打,一直打完1分钟,而有的人可能前三十秒在找电话号码,或者在犹豫要不要打,后三十秒才真正在打电话。如果把电话看作CPU,人数看作任务,我们就说前一个人(任务)的CPU利用率高,后一个人(任务)的CPU利用率低。
当然, CPU并不会在前三十秒工作,后三十秒歇着,只是说,有的程序涉及到大量的计算,所以CPU利用率就高,而有的程序牵涉到计算的部分很少,CPU利用率自然就低。但无论CPU的利用率是高是低,跟后面有多少任务在排队没有必然关系。

四、了解了CPU负载的含义,我们如何来降低服务器的CPU负载呢?
最简单办法的是更换性能更好的服务器,不要想着仅仅提高CPU的性能,那没有用,CPU要发挥出它最好的性能还需要其它软硬件的配合。
在服务器其它方面配置合理的情况下,CPU数量和CPU核心数(即内核数)都会影响到CPU负载,因为任务最终是要分配到CPU核心去处理的。两块CPU要比一块CPU好,双核要比单核好。
因此,我们需要记住,除去CPU性能上的差异,CPU负载是基于内核数来计算的!有一个说法,"有多少内核,即有多少负载"。

五、那么,本文开头的CPU负载分担到每个CPU上的负载是多少呢?那就要看我这台服务器有一共有多少个内核了。
Linux里有一个/proc目录,存放的是当前运行系统的虚拟映射,其中有一个文件为cpuinfo,这个文件里存放着CPU的信息。我们可以直接打开查看,或者过滤关键字进行查看,因为文件内容比较多,所以一般我们需要过滤关键字。
/proc/cpuinfo文件按逻辑CPU而非真实CPU分段落显示信息,每个逻辑CPU的信息占用一个段落,第一个逻辑CPU标识从0开始。我们首先要明白这一点,至于什么是逻辑CPU,下面会提到。要理解该文件中的CPU信息,有几个相关的概念要知道:
processor:逻辑CPU的标识
model name:真实CPU的型号信息
physical id:真实CPU和标识
cpu cores:真实CPU的内核数

$>grep ‘model name’ /proc/cpuinfo |uniq
model name : Intel(R) Xeon(R) CPU E5320 @ 1.86GHz
$>grep ‘physical id’ /proc/cpuinfo |sort |uniq |wc -l
2
$>grep ‘cpu cores’ /proc/cpuinfo |uniq
2
可以看出,该服务器CPU型号为Intel(R) Xeon(R) CPU E5320,双CPU,每个CPU都是双核,相当于服务器有4个内核。
前面我们说CPU负载是基于CPU内核数计算的,那么以前十五分钟的平均负载数10.49为例,我们可以得出,这台服务器每个CPU的负载为5.245,再分配到内核上,每个内核的负载为2.6左右。
这个负载是否是合理的呢?那就要看理想CPU负载的标准是什么样子的了。

六、CPU负载为多少才算比较理想?
这个有争议,各有各的说法,我个人比较赞同CPU负载小于等于0.7算是一种理想状态。
不 管某个CPU的性能有多好,1秒钟能处理多少任务,我们可以认为它无关紧要,虽然事实并非如此。在评估CPU负载时,我们只以5秒钟为单位为统计任务队列 长度。如果每隔5秒钟统计的时候,发现任务队列长度都是1,那么CPU负载就为1。假如我们只有一个单核的CPU,负载一直为1,意味着没有任务在排队, 还不错。
上面提到的我那台服务器,是双核又CPU,等于是有4个内核,每个内核的负载为1的话,总负载为4。这就是说,如果我那台服务器的CPU负载长期保持在4左右,还可以接受。但实际上CPU负载已经达到9以上了,所以就很麻烦了。

但是每个内核的负载为1,并不能算是一种理想状态!这意味着我们的CPU一直很忙,不得清闲。网上有说理想的状态是每个内核的负载为0.7左右,我比较赞同,0.7乘以内核数,得出服务器理想的CPU负载,比如我这台服务器,负载在3.0以下就可以。

七、下面关于逻辑CPU的描述,全部来自网上:
现在的服务器一般都使用了"超线程"(Hyper-Threading,简称HT)技术来提高CPU的性能。超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程。
虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每各CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。
具有超线程技术的CPU还有一些其它方面的限制。

感谢各位的阅读,以上就是"linux里的CPU负载是什么"的内容了,经过本文的学习后,相信大家对linux里的CPU负载是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

任务 内核 服务器 服务 信息 电话 利用率 性能 线程 两个 理想 逻辑 个人 文件 资源 统计 命令 情况 技术 时间 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 苏州耀捷网络技术有限公司 trip数据库 冰岛家谱数据库 取消保存打印数据库 中山软件开发价钱是多少 r910服务器不接键盘启动不了 网络安全知识测试活动总结 服务器只有七块硬盘只显示三块 亚创科技互联网有限公司 金蝶kis加密服务器 监控app软件开发 戴尔服务器关机了散热器还在工作 石家庄网络安全等保 镇江网络安全管理体系证书认证 网络安全监督电话 物联网上传数据到数据库 湘潭软件开发外包公司 安装金蝶是数据库配置失败 数据库系统必须建立安全机制吗 纯视觉自动驾驶数据库比对 济宁软件开发制作 下载商丘市网络安全课堂 网络安全专业收物理专业学生吗 静安区上门软件开发定制平均价格 石家庄网络安全等保 农行信用卡数据库插入错误 服务器流量限制 数据库连接一般性网络错误 数据库技术发展的阶段 软件开发上什么三本院校
0