文档介绍:性能指标之资源指标-CPU-谁占用了CPU-进程级
 
 
本节介绍如何查看哪些进程占用了较多的CPU,后续从哪里着手深入定位。
AIX当中,通常可以topas实时查看到哪个进程消耗了较多的CPU。类似的,linux当中可以 
 
性能指标之资源指标-CPU-谁占用了CPU-进程级
 
 
本节介绍如何查看哪些进程占用了较多的CPU,后续从哪里着手深入定位。
AIX当中,通常可以topas实时查看到哪个进程消耗了较多的CPU。类似的,linux当中可以通过top命令查看。
也可以通过topas –P按照CPU利用率排序
PAGE SPACE:The virtual working set size used by process (4 KB pages)
往往性能分析需要采用记录下来的监控数据,而不是实时数据。Nmon的TOP SHEET常常被用来做初步的性能分析,如图:
1、异常进程占用
以下图为例,占用CPU最高的是cicsas,也就是主要干活的进程,这个没的说。而占用CPU排在第2的进程是j2pg,通过以往的经验,这个进程是异常的进程。异常进程如何分析呢?
首先,要分析异常的进程占用CPU的时间段。同样是在Nmon的TOP SHEET中通过“Command”的筛选,查看j2pg在什么时间段占用CPU高。
发现j2pg在每次nmon打点监控的时候都消耗大量CPU。J2pg是个系统进程,看起来像是jfs2文件系统在执行page这样的动作的一个函数,但具体是哪个应用的函数直接或间接调用了这个系统函数,导致了这个结果,参见后续函数级分析的章节。
提前透露一下,这个场景中,由于应用过度频繁的调用了sync函数去做缓存刷磁盘的动作,导致了系统进程j2pg的高企。
2、Zombie进程占用
下面这个例子中,进程是最消耗CPU。
Zombie,顾名思义,就是僵尸进程。一个僵尸进程为什么会占用大量CPU呢?
其实zombie进程有两种可能性,一种是真正的僵尸进程,另一种是当进程销毁的时候,一个短暂的瞬间,进程会处于zombie状态。
根据上面的描述,可以初步分析出,如果zombie占用大量CPU,那么估计不是真正的僵尸进程,而是处于销毁过程中的进程,因为进程的创建、销毁都会消耗大量的CPU资源。
那么为什么这个销毁过程中的zombie会在测试过程中一直占用这么多CPU呢?答案就是,进程不断的被销毁。当然,进程不断被销毁的同时,一定有不断的进程创建,一定是进程反复被创建和销毁。
那么进程为什么会反复被创建和销毁呢?很可能进程处理几笔报文后就自杀了,也就是没有采用进程池。至此,我们只通过一个CPU图形,就可以把应用逻辑的bug找出来,CPU分析的威力是大大的。
3、周期性进程占用
下图中,CPU利用率有明显的