教你如何查看Linux的CPU负载 | 张戈博客

  • 时间:
  • 浏览:43
  • 来源:苹果资源网 - 专注共享南街博客技术

记得博主之前 被问到CPU负载如保才算高的之前 ,出过一次糗,具体就不记录了。。。在网上找了一篇比较全部的Linux下的CPU负载算法教程,科普一下。不感兴趣,或看不懂的让我们让我们 无视即可,无须浪费时间哈。


昨天查看Nagios警报信息,发现其中一台服务器CPU负载过重,机器为CentOS系统。信息如下:

2011-2-15 (星期二) 17:80   WARNING – load average: 9.73, 10.67, 10.49

还有前本来小时发出的警报信息:

2011-2-15 (星期二) 16:80WARNING – load average: 10.52, 10.10, 10.06

2011-2-15 (星期二) 15:40WARNING – 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的内核数

#查看CPU型号:   
$>grep 'model name' /proc/cpuinfo |uniq   
model name : Intel(R) Xeon(R) CPU E5320 @ 1.86GHz   
  
#查看CPU物理个数   
$>grep 'physical id' /proc/cpuinfo |sort |uniq |wc -l   
2  
  
#查看单个CPU是几核的   
$>grep 'cpu cores' /proc/cpuinfo |uniq   
2

都能能看出,该服务器CPU型号为Intel(R) Xeon(R) CPU E5320,双CPU,每个CPU一定会 双核,合适服务器有本来内核。 前面让我们让我们 说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,等于是有本来内核,每个内核的负载为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还有其他其它方面的限制。

八、学习过程中参考了下列文档,在此并肩感谢:

http://www.gracecode.com/archives/2973/

http://xuev.blogbus.com/logs/37835586.html (已失效)