说明:本文引自放翁(文初)的一亩三分地,写的不错,通俗易懂和大家分享下....
CPU利用率在过去常常被我们这些外行认为是判断机器是否已经到了满负荷的一个标准,看到50%-60%的使用率就认为机器就已经压到了临界了。CPU利用率,顾名思义就是对于CPU的使用状况,这是对一个时间段内CPU使用状况的统计,通过这个指标可以看出在某一个时间段内CPU被占用的情况,如果被占用时间很高,那么就需要考虑CPU是否已经处于超负荷运作,长期超负荷运作对于机器本身来说是一种损害,因此必须将CPU的利用率控制在一定的比例下,以保证机器的正常运作。
Load Average是CPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息。为什么要统计这个信息,这个信息的对于压力测试的影响究竟是怎么样的,那就通过一个类比来解释CPU利用率和Load Average的区别以及对于压力测试的指导意义。
我们将CPU就类比为电话亭,每一个进程都是一个需要打电话的人。现在一共有4个电话亭(就好比我们的机器有4核),有10个人需要打电话。现在使用电话的规则是管理员会按照顺序给每一个人轮流分配1分钟的使用电话时间,如果使用者在1分钟内使用完毕,那么可以立刻将电话使用权返还给管理员,如果到了1分钟电话使用者还没有使用完毕,那么需要重新排队,等待再次分配使用
上图中对于使用电话的用户又作了一次分类,1min的代表这些使用者占用电话时间小于等于1min,2min表示使用者占用电话时间小于等于2min,以此类推。根据电话使用规则,1min的用户只需要得到一次分配即可完成通话,而其他两类用户需要排队两次到三次。
电话的利用率 = sum (active use cpu time)/period
每一个分配到电话的使用者使用电话时间的总和去除以统计的时间段。这里需要注意的是是使用电话的时间总和(sum(active use cpu time)),这与占用时间的总和(sum(occupy cpu time))是有区别的。(例如一个用户得到了一分钟的使用权,在10秒钟内打了电话,然后去查询号码本花了20秒钟,再用剩下的30秒打了另一个电话,那么占用了电话1分钟,实际只是使用了40秒)
电话的Average Load体现的是在某一统计时间段内,所有使用电话的人加上等待电话分配的人一个平均统计。
电话利用率的统计能够反映的是电话被使用的情况,当电话长期处于被使用而没有的到足够的时间休息间歇,那么对于电话硬件来说是一种超负荷的运作,需要调整使用频度。而电话Average Load却从另一个角度来展现对于电话使用状态的描述,Average Load越高说明对于电话资源的竞争越激烈,电话资源比较短缺。对于资源的申请和维护其实也是需要很大的成本,所以在这种高Average Load的情况下电话资源的长期“热竞争”也是对于硬件的一种损害。
低利用率的情况下是否会有高Load Average的情况产生呢?理解占有时间和使用时间就可以知道,当分配时间片以后,是否使用完全取决于使用者,因此完全可能出现低利用率高Load Average的情况。由此来看,仅仅从CPU的使用率来判断CPU是否处于一种超负荷的工作状态还是不够的,必须结合Load Average来全局的看CPU的使用情况和申请情况。
所以回过头来再看测试部对于Load Average的要求,在我们机器为8个CPU的情况下,控制在10 Load左右,也就是每一个CPU正在处理一个请求,同时还有2个在等待处理。看了看网上很多人的介绍一般来说Load简单的计算就是2* CPU个数减去1-2左右(这个只是网上看来的,未必是一个标准)。
相关推荐
详解Linux中Load_average负载
理解Load Average做好压力测试
Clarify what UNIX load average really is and helpful for sysadmin.
在输入查看可用的CPU核数命令,获得12时,意味着本系统可用CPU核数12...系统负载/CPU负载–是Linux系统中CPU利用率过高或过低的度量;CPU正在执行或处于等待状态的进程数。 平均负载(load average)-是在给定的1、5和1
MySQL导致的CPU高负载问题 今天下午发现了一个MySQL导致的向上服务器...top - 17:12:44 up 104 days, 20 min, 2 users, load average: 1.06, 1.02, 1.00 Tasks: 218 total, 1 running, 217 sleeping, 0 stopped, 0 zo
freertos 情况下 cpu 占用率的统计方式,简单方便,易移植。不仅仅局限于 freertos, 此类算法可适用于多种 rtos 的 cpu 使用率统计
RF PA Pull load,负载牵引
Clarify what UNIX load average really is and helpful for sysadmin.
CPU负载 没有依赖性。 let cpu = require ( 'cpu-load' ) // track the CPU load over the next 1 second cpu ( 1000 , function ( load ) { load //=> 0.03 (3%) } ) CPU 负载在多核机器上平均。 无需将 CPU ...
在对系统的方法化分析中,首要且基本的工具之一常常是对系统的 CPU 利用率进 行简单测量。 Linux 以及大多数基于 UNIX 的操作系统都提供了一条命令来显示系统的 平均负荷 (loadaverage) 。 [huangc@V-02-01-...
stm32cube 库自带,此算法是基于操作系统的,理论上不限于任何操作系统,只要有任务调度就可以。 使用方法说明:http://blog.csdn.net/ben392797097/article/details/73015198
平均负载(load average)是指某段时间内占用cpu时间的进程和等待cpu时间的进程数,这里等待cpu时间的进程是指等待被唤醒的进程,不包括处于wait状态进程。 以上分析可以看出,一台机器很有可能处于低cpu使用率高...
1 负载调整率 (LOAD REGULATION) 电源负载的变化会引起电源输出的变化,负载增加,输出降低,相反负载减少,输出升高。好的电源负载变化引起的输出变化减到最低,通常指标为3%~5%。 负载调整率是衡量电源...
Clarify what UNIX load average really is and helpful for sysadmin.
LED Load Chroma 6314A负载机说明书
介绍linx 下的 loadaverage的概念
loadbalancing负载均衡开源解决方案.pptx
load average值分别记录了上个1分钟,5分钟和15分钟间隔的负载情况,load average不是一个百分比,而是在队列中等待执行的进程的数量。如果进程要求CPU时间被阻塞(意味着CPU没有时间处理它),load average值将增加...
AIX或UNIX下安装loadrunner的load generator负载生成器组件.docx