性能监控工具使用
一、概述
监控,在检查系统问题或优化系统性能工作上是一个不可缺少的部分。通过操作系统监控工具监视操作系统资源的使用情况,间接地反映了各服务器程序的运行情况。根据运行结果分析可以帮助我们快速定位系统问题范围或者性能瓶颈点。
nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。
nmon所记录的数据包含以下一些方面(也是我们在寻找问题过程中所关注的资源点):
● cpu占用率
●内存使用情况
●磁盘I/O速度、传输和读写比率
●文件系统的使用率
●网络I/O速度、传输和读写比率、错误统计率与传输包的大小
●消耗资源最多的进程
●计算机详细信息和资源
●页面空间和页面I/O速度
●用户自定义的磁盘组
●网络文件系统
另外在AIX操作系统上,nmon还能监控到其他的一些信息,如异步I/O等。
关于这个工具的更加详细的说明请看IBM官方网站的说明:
1、nmon工具:
http://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/
2、nmon analyser工具:
http://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/
二、下载安装nmon
如何获取nmon呢?我们可以在IBM的官方网站上免费下载获取,下载网址为:https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power%20Systems/page/nmon
下载页面如下所示:
nmon的安装步骤如下:
1)用root用户登录到系统中;
2)建目录:
1
|
#mkdir /test |
3)把nmon用ftp上传到/test,或者通过其他介质拷贝到/test目录中;
4)执行授权命令:
1
|
#chmod +x nmon |
测试:
Nmon工具使用比较简单,在nmon目录下,输入
1
|
. /nmon
|
出现此画面,说明已安装成功。(这是AIX版本的画面,其他版本画面会稍有不同)
输入c可显示CPU的信息,“m”对应内存、“n”对应网络,“d”可以查看磁盘信息;“t”可以查看系统的进程信息;“
以下为nmon的帮助页面:
使用单键命令来查看您所需要的数据。例如,要获取CPU、内存和磁盘统计信息,启动nmon 并输入:cm d;
若需获取相关的帮助信息,按 h 键。
要需获取附加的帮助信息,可以尝试其他方法:
输入 nmon -? 命令可以获取简短的详细信息。
输入 nmon -h 命令可以获取完整的详细信息。
三、nmon数据采集
1、数据采集
为了实时监控系统在一段时间内的使用情况并将结果记录下来,我们可以通过运行以下命令实现:
1
|
#./ nmon -f -t -s30 -c 180 |
参数说明:
l-f:按标准格式输出文件:<hostname>_YYYYMMDD_HHMM.nmon;
l-t:输出中包括占用率较高的进程;
l-s30:每30秒进行一次数据采集
l-c180:一共采集180次
输入命令回车后,将自动在当前目录生成一个hostname_timeSeries.nmon的文件,nmon输出文件的命名方式是服务器名_日期时间.nmon
特别说明:
该命令启动后,会在nmon所在目录下生成监控文件,并持续写入资源数据,直至360个监控点收集完成——即监控1小时,这些操作均自动完成,无需手工干预,测试人员可以继续完成其他操作。如果想停止该监控,需要通过“#ps–ef|grepnmon”查询进程号,然后杀掉该进程以停止监控。
通过sort命令可以将nmon结果文件转换为csv文件:
1
|
# sort -A hostname_timeSeries.nmon> hostname_timeSeries.nmon.csv |
执行完sort命令后即可在当前目录生产hostname_timeSeries.nmon.csv文件。
2、生成图形化结果
为了分析nmon监控获得的结果,IBM还提供了相应的图形化分析工具nmon_analyser,通过nmonanalyser.xls工具可以把监控的结果文件转换成excel文件,方便分析系统的各项资源占用情况。
nmon_analyser工具的下载:
http://www-941.haw.ibm.com/collaboration/wiki/display/Wikiptype/nmonanalyser
nmon analyser.xls工具的使用方法如下:
(1)打开nmonanalyser.xls工具;
(2)调整excel宏安全性:工具-宏-安全性
(如果报告以下宏的安全级别太高错误,则在“工具– 宏–安全性”里把级别调低,然后重新打开文件)
(3)修改完后,确定-关闭nmonanalyser.xls,重新打开;
(4)点击Analysernmon data 按钮,选择下载下来的.csv文件,然后就会转化成.excel文件,生成图形化的文件
以上就是nmon的简单描述与使用介绍,大家可以根据自己所采集到的结果分析系统的情况。点击在EXCEL工具下的标签可以看见不同的性能报告,参考如下:
sheet名称 |
sheet含义 |
SYS_SUMM |
系统汇总,蓝线为cpu占有率变化情况,粉线为磁盘IO的变化情况; |
AAA |
关于操作系统以及nmon本身的一些信息; |
BBBB |
系统外挂存储容量以及存储类型; |
BBBC |
系统外挂存储位置、状态以及描述信息; |
BBBD |
磁盘适配器信息;(包含磁盘适配器名称以及描述) |
BBBE |
包含通过lsdev命令获取的系统设备及其特征,显示vpaths和hdisks之间的映射关系; |
BBBG |
显示磁盘组详细的映射关系; |
BBBL |
逻辑分区(LPAR)配置细节信息; |
BBBN |
网络适配器信息; |
BBBP |
vmtune, schedtune, emstat和lsattr命令的输出信息; |
CPUnn |
显示执行之间内CPU占用情况,其中包含user%、sys%、wait%和idle%; |
CPU_ALL |
所有CPU概述,显示所有CPU平均占用情况,其中包含SMT状态; |
CPU_SUMM |
每一个CPU在执行时间内的占用情况,其中包含user%、sys%、wait%和idle%; |
DGBUSY |
磁盘组每个hdisk设备平均占用情况; |
DGREAD |
每个磁盘组的平均读情况; |
DGSIZE |
每个磁盘组的平均读写情况(块大小); |
DGWRITE |
每个磁盘组的平均写情况; |
DGXFER |
每个磁盘组的I/O每秒操作; |
DISKBSIZE |
执行时间内每个hdisk的传输块大小; |
DISKBUSY |
每个hdisk设备平均占用情况; |
DISKREAD |
每个hdisk的平均读情况; |
DISKWRITE |
每个hdisk的平均写情况; |
DISKXFER |
每个hdisk的I/O每秒操作; |
DISKSERV |
本sheet显示在每个收集间隔中hdisk的评估服务时间(未响应时间) |
DISK_SUMM |
总体disk读、写以及I/O操作; |
EMCBSIZE/FAStBSIZE |
执行时间内EMC存储的传输块大小; |
EMCBUSY/FAStBUSY |
EMC存储设备平均占用情况; |
EMCREAD/FAStREAD |
EMC存储的平均读情况; |
EMCWRITE/FAStWRITE |
EMC存储的平均写情况; |
EMCXFER/FAStXFER |
|
EMCSERV/FAStSERV |
|
ESSBSIZE |
本sheet记录在系统中每个vpaths下读写操作的平均数据传输大小(blocksize) Kbytes |
ESSBUSY |
本sheet记录使用ESS系统的每个vpaths下的设备繁忙情况 |
ESSREAD |
本sheet记录在系统中每个vpaths下读取操作的 data rate (Kbytes/sec) |
ESSWRITE |
本sheet记录在系统中每个vpaths下写入操作的 data rate (Kbytes/sec) |
ESSXFER |
本sheet记录在系统中每个vpaths下每秒的IO操作 |
ESSSERV |
本sheet显示在每个收集间隔中vpaths的评估服务时间(未响应时间) |
FILE |
本sheet包含nmon内核内部的统计信息的一个子集,跟sar报告的值相同 |
FRCA |
|
IOADAPT |
对于BBBCsheet每个IO适配器列表,包含了数据传输速度为读取和写入操作(千字节/秒)和I / O操作执行的总数量 |
JFSFILE |
本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的空间百分比 |
JFSINODE |
本sheet显示对于每一个文件系统中,在每个间隔区间正在被使用的inode百分比 |
LARGEPAGE |
本图表显示Usedpages和Freepages随着时间的变化 |
LPAR |
|
MEM |
本sheet主图上显示空闲实存的数量 |
MEMUSE |
除 %comp参数外,本sheet包含的所有项都和vmtune命令的报告中一样 |
MEMNEW |
本sheet显示分配的内存片信息,分三大类:用户进程使用页,文件系统缓存,系统内核使用页 |
NET |
本sheet显示系统中每个网络适配器的数据传输速率(千字节/秒) |
NETPACKET |
本sheet统计每个适配器网络读写包的数量;这个类似于netpmon –O dd 命令 |
NFS sheets |
|
PAGE |
本sheet统计相关页信息的记录 |
PROC |
本sheet包含nmon内核内部的统计信息。其中RunQueue和Swap-in域是使用的平均时间间隔,其他项的单位是比率/秒 |
PROCAIO |
本sheet包含关于可用的和active的异步IO进程数量信息. |
TOP |
|
UARG |
|
WLM sheets |
|
ZZZZ |
本sheet自动转换所有nmon的时间戳为现在真实的时间,方便更容易的分析 |
关于NMON命令与语法更加详细的命令请看下面的页面:
相关参考资料:
1、Nmon在IBM的官方网站
http://www.ibm.com/developerworks/wikis/display/WikiPtype/nmon
2、nmon for linux的官方网站
http://nmon.sourceforge.net/pmwiki.php
3、文章一:《nmon 性能:分析 AIX 和Linux 性能的免费工具》
http://www.ibm.com/developerworks/cn/aix/library/analyze_aix/
4、文章二:《nmon analyser——生成AIX 性能报告的免费工具》
http://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/index.html:
说明:以上截图来源网络,但不影响理解和分析
本文出自 “Lee” 博客,请务必保留此出处http://leexide.blog.51cto.com/6459431/1260067