AIX系统性能分析手册
性能检查总览:
AIX性能检查模块包括CPU、内存、IO以及网络,其常规步骤可展示为下图:
图 1 AIX系统性能分析图
针对目前的实际情况,本文档主要介绍CPU、内存和IO的内存分析常规步骤。
CPU性能分析步骤:
图 2 CPU性能分析流程图
1.判断CPU(usr%+sys%)的比率是否大于90%,如超过转2。
命令:sar,vmstat,topas, nmon等
例子:topas,其中user%对应于用户态(usr%)占用的CPU使用比例,Kern%对应于系统态(sys%)占用的CPU使用比例,如下图
图 3 topas CPU 瓶颈判断示意图
注释:
如果系统CPU有IO wait存在,说明可能IO或内存方面存在瓶颈,请按内存和IO分析步骤来检查。其中主要导致IO Wait的主要原因如下:
a)内存不够而引起频繁的的数据交换,导致数据存取存在交换空间的I/O瓶颈
b)硬盘数据分布不合理
2.检查那个进程占用CPU资源较多
命令:topas, nmon,ps -aux等
示例(topas):
图 4 topas 占用CPU最多的进程示意图
3.判断是否有非业务进程或异常进程,如有则检查导致异常进程的原因,判断是否合理
4.如主要为业务进程所用,收集CPU使用率详细信息,
工具:tprof -k -s -e -x "sleep 收集的时间长度"
注释:
收集的时间长度一般不要太长,否则数据量会很大。
这条命令将创建一个sleep.prof文件,主要关注图中标红项
图 5 tprof:进程CPU详细分析图
5.判断Sys%的比例,如和往常相比占有率偏高,如是可能是应用问题,建议联系相关厂
商或开发人员分析具体原因
6.如Sys%相比往常偏低,可能是系统业务更加繁忙,有潜在的CPU瓶颈问题,建议增加
CPU或找相应厂商工程师分析具体原因
内存分析步骤:
图 6 内存分析流程图
1.判断系统是否有计算页面调入现象?换页空间是否持续增高?
命令:vmstat,topas, nmon
图7 topas内存瓶颈判断参数
2.如有,查看文件型内存和计算型内存的占用比例,根据系统的类型判断设置是否合理,
如文件内存占用不合理,建议通过系统参数调整
a)对于数据库系统(Oracle,db2等),文件缓存比例不要太大,基点建议为5%左右
b)对于文件操作型应用(如SAS),文件缓存的比例要相对较大。
c)对于其它类型,建议文件缓存的比例不要超过20%
命令:topas, nmon,vmo等
3.查看占用内存最多的进程
命令:nmon,ps aux|head –$(待列出的进程数目) 等.
示例(nmon):
图8 nmon占用内存最多的进程
4.判断是否有占用内存较多的非业务进程或异常进程,如有则请求相关人员或厂商查询导
致异常或内存泄露的原因
命令:svmon –Pns
5.如均为业务进程,协助应用工程师调查业务目前内存使用是否正常
6.附:详查内存使用情况的几个命令:
用户物理内存使用情况:svmon –U
所有进程物理内存使用情况:svmon –P
特定进程物理内存使用情况:svmon –P pid
指定命令的物理内存使用情况:svmon –C command1… commandn
实例:检查进程是否有内存泄露:
输入命令:svmon –P 进程ID,然后记录“Work process private”项对应的值
等待一段时间,重复运行刚才的命令:svmon –P 进程ID,对照“Work process private”项对应的值有没比以前增长很多,如有可能会有泄露
问题
IO分析步骤:
图9 IO分析流程图
1.判断系统是否有IO wait,如有则说明系统可能有IO性能问题
命令:topas, nmon
示例:(topas)
图10 topas CPU IOWait示意图
2.查看IO概要信息,
a)对内置盘,判断系统磁盘的繁忙率是否超过80%、读写流量和每个磁盘IO每秒请
求数;
b)对盘阵,主要检查读写流量和IO每秒请求数
命令:topas, nmon, iostat
示例:
图11 topas IO性能参数示意图
3.查看IO使用最高的几个进程,判断IO使用是否合理,排除备份等高IO使用情况
命令:nmon,filemon
示例:(nmon)
图12 nmon最占用IO资源的进程
4.查找最活跃的文件、文件系统、逻辑卷和物理卷,判断数据使用和分布是否合理?
命令:filemon –o /tmp/filemon.out –O all
示例:
Most Active Logical Volumes
------------------------------------------------------------------------
util #rblk #wblk KB/s volume description
------------------------------------------------------------------------
1.00 10551264 5600 17600.8 /dev/rms09_lv /RMS/bormspr0/oradata07
1.00 6226928 7584 10394.4 /dev/rms06_lv /RMS/bormspr0/oradata04
1.00 128544 3315168 5741.5 /dev/rms04_lv /RMS/bormspr0/oracletemp
.......
Most Active Physical Volumes
------------------------------------------------------------------------
util #rblk #wblk KB/s volume description
------------------------------------------------------------------------
1.00 3313059 4520 5531.2 /dev/hdisk66 SAN V olume Controller Device
1.00 7563668 22312 12647.6 /dev/hdisk59 SAN V olume Controller Device
1.00 53691 186**** ****.1 /dev/hdisk61 SAN V olume Controller Device
……
5.对于缓存型文件系统,检查系统是否有足够的缓存来处理文件页面
a)检查系统文件内存的使用率和交换情况
命令:filemon,topas, nmon
b)判断系统内存是否足够用来和应该高速缓存那些由正在运行进程使用的文件页
面?vmstat、svmon
c)如有必要,调整vmo参数来增加系统文件内存的使用。
6.如果是内置磁盘,检查“热”文件是否有很多碎片?如有碎片,利用工具重组物理分区
分配。
命令:fileplace,reorgvg
示例:fileplace
判断方法,顺序性=(总的存储数目Nfrags –存储的分组数目)/总的存储数目,如果该值较小,则说明碎片太多。
对本例,顺序性=(9538 - 18)/9538 = 99.8%