本文介绍: CPU说明等待执行的任务很多,但是通常任务多CPU使用率也会比较高,如果低就说明CPU根本没工作,那些很多的任务处于等待状态,可能进程僵死了。CPU说明任务少,但是任务执行时间长,有可能是程序本身有问题,如果没有问题那么计算完成后则利用率会下降。CPU使用率是单位时间内CPU繁忙程度的统计。平均负载不仅包括正在使用CPU的进程,还包括等待CPU或I/O的进程。因此,两者不能等同,有两种常见的场景如下所述:【1】CPU密集型应用,大量进程在等待或使用CPU,此时CPU使用率与平均负载呈正相关状态。
优质博文:IT-BLOG-CN
一、CPU 使用率
CPU
使用率是 CPU
处理非空闲任务所花费的时间百分比 。例如单核CPU 1s
内非空闲态运行时间为0.8s
,那么它的CPU
使用率就是80%
;双核CPU 1s
内非空闲态运行时间分别为0.4s
和0.6s
,那么,总体CPU
使用率就是(0.4s + 0.6s) / (1s * 2) = 50%
,其中2
表示CPU
核数,多核CPU
同理。CPU
使用率只能在指定的时间间隔内测量。我们可以通过将空闲时间的百分比从100
中减去来确定CPU
使用率。
使用率这个要结合时间片来说,从上图的演变可以看出影响使用率高低的因素不是load
的多少,而是在分配给某个进程时间片时,这个进程是否使用了CPU
的计算能力。在第四分钟时候,分配给蓝人1
分钟,但是它什么也没干,这1
分钟内电话是闲置的没有被使用,所以这一分钟内的电话使用率就是0%
。但是load
是3
。
当然这里就存在一个统计周期的问题,上图我们的统计周期是1
分钟,而分配给每个人的最小时间单位也是1
分钟。从计算机角度来说,单核心CPU
,假设1
秒钟分为100
个时间片,如果2
个任务,第一个任务用了5
个时间片执行完成,另外一个任务用了15
个时间片执行完成,所以如果统计周期是1
秒,那么这1
秒内的CPU
使用率就是20%
。CPU
利用率高不一定负载高,CPU
利用率是一段时间内CPU
被占用的情况。
二、CPU Load
CPU
负载定义为在单个时间点使用或等待使用一个内核的进程数。在单核系统,我们的CPU
平均负载始终低于0.7
。这表明每个需要使用CPU
的进程都可以立即使用它,而无需等待。如果CPU
平均负载大于1
,则表示有进程需要使用CPU
,但由于CPU
不可用,目前无法使用。在多处理器系统中高于1
的平均负载不会成为问题,因为有更多内核可用。
三、CPU 使用率和负载常用命令
top
命令查看CPU
使用率
vmstat
命令查看CPU
的使用率
/proc/stat
命令查看CPU
使用率
uptime
查看平均负载
四、总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。