Linux系统下CPU使用(load average)梳理
Posted 散尽浮华
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统下CPU使用(load average)梳理相关的知识,希望对你有一定的参考价值。
在平时的运维工作中,当一台服务器的性能出现问题时,通常会去看当前的CPU使用情况,尤其是看下CPU的负载情况(load average)。
要想获得服务器的CPU负载情况,有下面三种命令:
1)w命令 [[email protected] ~]# w 12:12:41 up 167 days, 20:46, 2 users, load average: 0.00, 0.01, 0.05 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root pts/0 192.168.1.5 10:01 1.00s 0.11s 0.00s w root pts/2 192.168.1.5 10:19 1:47m 0.04s 0.04s -bash 2)uptime命令 [[email protected] ~]# uptime 12:12:55 up 167 days, 20:46, 2 users, load average: 0.00, 0.01, 0.05 3)top命令 [[email protected] ~]# top top - 12:13:22 up 167 days, 20:47, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 272 total, 1 running, 271 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 65759080 total, 58842616 free, 547908 used, 6368556 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 64264884 avail Mem ................
简单说下CPU负载和CPU利用率的区别
1)CPU利用率:显示的是程序在运行期间实时占用的CPU百分比 2)CPU负载:显示的是一段时间内正在使用和等待使用CPU的平均任务数。 CPU利用率高,并不意味着负载就一定 大。 举例来说:如果我有一个程序它需要一直使用CPU的运算功能,那么此时CPU的使用率可能达到100%,但是CPU的工作负载则是趋近于“1”,因为 CPU仅负责一个工作嘛! 如果同时执行这样的程序两个呢?CPU的使用率还是100%,但是工作负载则变成2了。所以也就是说,当CPU的工作负载越大, 代表CPU必须要在不同的工作之间进行频繁的工作切换。 ------------------------下面通过一个电话亭打电话的比喻来说明这两者之间的区别------------------------ 某公用电话亭,有一个人在打电话,四个人在等待,每人限定使用电话一分钟,若有人一分钟之内没有打完电话,只能挂掉电话去排队,等待下一轮。 电话在这里就相当于CPU,而正在或等待打电话的人就相当于任务数。 在电话亭使用过程中,肯定会有人打完电话走掉,有人没有打完电话而选择重新排队,更会有新增的人在这儿排队,这个人数的变化就相当于任务数的增减。 为了统计平均负载情况,我们5分钟统计一次人数,并在第1、5、15分钟的时候对统计情况取平均值,从而形成第1、5、15分钟的平均负载。 有的人拿起电话就打,一直打完1分钟,而有的人可能前三十秒在找电话号码,或者在犹豫要不要打,后三十秒才真正在打电话。如果把电话看作CPU,人数看作任务,我们就说前一个人(任务)的CPU利用率高,后一个人(任务)的CPU利用率低。 当然, CPU并不会在前三十秒工作,后三十秒歇着,只是说,有的程序涉及到大量的计算,所以CPU利用率就高,而有的程序牵涉到计算的部分很少,CPU利用率自然就低。但无论CPU的利用率是高是低,跟后面有多少任务在排队没有必然关系。
以上是关于Linux系统下CPU使用(load average)梳理的主要内容,如果未能解决你的问题,请参考以下文章