智客公社

标题: 说一说360度看问题 linux负载过高是哪些原因导致的 [打印本页]

作者: 岁月如歌    时间: 2022-10-31 03:20
标题: 说一说360度看问题 linux负载过高是哪些原因导致的

负载很高是怎么回事?对此问题,IT培训一五一十详细做答。分析负载很高的原因网络工程师培训的相关资讯可以到我们网站了解一下,从专业角度出发为您解答相关问题,给您优质的服务!http://www.dexuee.com/lesson_wangluogongchengshi/



要区别CPU负载和CPU利用率,它们是不同的两个概念,但它们的信息可以在同一个命令中进行显示。CPU利用率显示的是程序在运行期间时占用的CPU百分比,这是对一个时间段内CPU使用状况的统计,通过这个指标可以看出在某一个时间段内CPU被占用的情况,如果被占用时间很高,那么就需要考虑CPU是否已经处于超负荷运作。而CPU负载显示的是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息。


CPU利用率高并不意味着负载就一定大,可能这个任务是一个CPU密集型的。一样CPU低利用率的情况下是否会有高LA的情况产生呢?理解占有时间和使用时间就可以知道,当CPU分配时间片以后,是否使用完全取决于使用者,因此完全可能出现低利用率高LA的情况。另外IO设备也可能导致CPU负载高。


由此来看,仅仅从CPU的使用率来判断CPU是否处于一种超负荷的工作状态还是不够的,必须结合LA来全局的看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负载是基于内核数来计算的,即有多少内核,即有多少负载,如单核比较好不要超过100%,也就是负载为100,如此类推。


L里有一个目录,存放的是当前运行系统的虚拟映,其中有一个文件为,这个文件里存放着CPU的信息。文件按逻辑CPU而非真CPU分段落显示信息,每个逻辑CPU的信息占用一个段落,首个逻辑CPU标识从0开始。


要理解该文件中的CPU信息,有几个相关的概念要知道,如:表示逻辑CPU的标识、表示真CPU的型号信息、表示真CPU和标识、表示真CPU的内核数等等。


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


经上述分析,原因是不是很简单,理清缘由让我们给出更透彻的看问题。




欢迎光临 智客公社 (http://bbs.cnaiplus.com/) Powered by Discuz! X3.4