对于CPU的使用情况,可以通过vmstat命令查看:
#vmstat 1 5 每个一秒显示一次,共显示10次系统状况。
System Configuration: lcpu=16 mem=31488MB
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
4 2 3127273 3272 0 4 8 338 937 0 2357 22962 1561 13 1 83 3
其中各项含义如下。
kthr:内核线程状态在采样间隔期间每秒钟更改一次。
r:当前在队列中等待执行的线程数,如果这个数值经常非常大(例如达到2~5倍以上的CPU数),就说明系统中等待执行的线程比较多,可能存在性能问题。注意,对于大型应用系统,需要执行的线程非常多,所以等待队列中经常有个位数的数字是很正常的情况,并不是说只有等待队列永远是0,才说明系统的CPU满足了要求,实际上0等待队列一般说明发生了“大马拉小车”的情况。
b:当前队列中处于等待状态的线程,由于IO(存储、网络)操作未完成,无法继续执行,必须挂起,此时CPU可以切换到另外一个线程操作。显然,如果有很多(大于2~5倍CPU数)线程处于b状态,系统就可能有IO瓶颈。
内存:关于使用虚拟内存和实内存的信息。如果虚拟页已经被访问的话,虚拟页可以被认为是活动的。一页为 4096 个字节。
avm:Active Memory,而不是available memory!这是经常被理解错误的一项,它等于当前使用的物理内存和使用的交换区的总和减去作为文件系统缓存的物理内存,单位为4KB,即一个内存页。
fre:空闲的物理内存,单位为4KB。
pi:在vmstat两次检查间隔期间,系统将磁盘交换区读回物理内存页的数量。通常多是内存不够的表现。
po:在vmstat两次检查间隔期间,系统将物理内存页交换到磁盘的数量。越多代表系统内存越紧张,但偶尔出现的pi, po并不能说明任何问题,而且通常系统大量文件操作(例如文件系统备份/恢复,tar操作等),往往伴随着大量的pi, po,这都是正常现象。
页:关于缺页故障和调页活动的信息。这些是间隔的平均值,以秒为单位给出。
re:pi/po,数值长期趋近于1,并且pi, po都很大,说明系统可能有thrash(抖动)的现象,即刚交换出去的内存马上又需要使用,必须交换回来,物理内存可能严重不足。
fr:代表在此段时间内,有多少不使用的物理内存被释放,可能是内存页被程序释放,也可能是已经将其内存交换到了磁盘。
sr:代表在此段时间内,由于有内存使用申请,而物理内存空闲不足,进行有多内存页搜索被检查的页数。此数值越大,代表内存申请越多,也就是内存需要量比较大。
cy:进行内存搜索、清理消耗的时钟周期,此数值越大,说明内存越紧张,操作系统用了过多的时间进行内存清理。当然,也有可能系统内的程序调度(起/停)过于频繁。无论如何,cy多大都说明当前内存使用、管理方面需要仔细分析。
故障:采样间隔平均每秒的捕获和中断率。
in:中断次数,在此段时间内由各种不同原因产生的中断次数,中断的原因可能是CPU处理时间片到期、设备IO产生中断等。vmstat –i可以查看更详细的关于中断的信息
cs:上下文切换,对于一个CPU,当正在执行的线程与即将执行的线程不是同一个的时候,就会产生一个cs(Content Switch)。有三种情况会导致cs:当前线程等待资源(磁盘/网络IO完成),线程自己要求sleep或等待资源解锁;更高优先等级线程要求CPU;此线程用尽了10ms时间片。由于自然情况下,每CPU可以产生100次线程切换(10ms一次),所以cs次数除以vmstat的间隔时间,再除以CPU个数可以用来判断系统繁忙的指标之一,这个数字如果远远高于100(通常是10~20倍以内的比例,即每个CPU对应1000~2000次cs都算正常),则可能有CPU瓶颈。对于最新的P5、P6系列CPU,由于支持SMT,一个物理CPU同时支持2个线程,则可以考虑再除2或1.5,以进行合理的判断。
sy:(在faults区的sy)此时间段内系统调用次数,用户程序执行过程中发出系统执行调用申请,以便普通用户请求核心操作,例如进行磁盘IO等操作。
Cpu:CPU 使用时间故障百分比。
us:系统中用户操作所占CPU时间百分比。
sy:(在cpu区的sy)系统中系统调用所占CPU时间百分比。
id:系统中CPU的空闲时间百分比。
wa:系统等待磁盘IO所占时间百分比(此时CPU闲置)。
在进行了CPU共享(需要POWER 5、6机型,并购买微分区功能才支持)的机器上,还有另外两项,pc和ec,pc代表实际分配给此分区的CPU数量(可能是小数,以1%为单位),而ec代表授权此分区使用CPU的数量与实际使用的比例(超出100时说明当前分区临时抢占使用了超过了指派给它的CPU资源)。
转载于:https://blog.51cto.com/lucifer119/1434927