服务器性能监控,nmon的下载安装与使用分析报告
一、概述:
监控,在检查系统问题或优化系统性能工作上是一个不可缺少的部分。通过操作系统监控工具监视操作系统资源的使用情况,间接地反映了各服务器程序的运行情况。根据运行结果分析可以帮助我们快速定位系统问题范围或者性能瓶颈点。
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/
2、下载nmon软件包:
1,wget方式下载,地址: https://nchc.dl.sourceforge.net/project/nmon/nmon16d_x86.tar.gz
2,官网手动下载,地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Downlo ,翻译了下,如下图
因为CentOS就是 RedHat 的免费版本(上面内核版本 2.6.32-431.el6.x86_64),所以对应系统是RHEL 6.5,选择右边包含RedHat 6.5的下载。
三、解压安装配置:
tar -zxvf nmon16d_x86.tar.gz
配置启动命令
在解压的文件夹目录下
cp nmon_x86_64_centos7 /usr/local/bin/
四、测试:
Nmon工具使用比较简单,在nmon目录下,输入./nmon_x86_64_centos7
或者添加了启动直接输入nmon
输入nmon命令启动Nmon,如下图
在上面的交互式窗口中,可以使用nmon 快捷键来显示不同的系统资源统计数据:
-
q
: 停止并退出 Nmon -
h
: 查看帮助 -
c
: 查看 CPU 统计数据 -
m
: 查看内存统计数据 -
d
: 查看硬盘统计数据 -
k
: 查看内核统计数据 -
n
: 查看网络统计数据 -
N
: 查看 NFS 统计数据 -
j
: 查看文件系统统计数据 -
t
: 查看高耗进程 -
V
: 查看虚拟内存统计数据 -
v
: 详细模式
按下c,m,d后如下图,CPU、内存、磁盘的消耗情况都直观的展现出来了,按q键可以退出。
五,数据采集
性能测试时,需要根据测试场景的执行情况,分析一段时间内系统资源的变化,这时需要nmon采集数据并保存下来,以下是常用的参数:
-f 参数:生成文件,文件名=主机名+当前时间.nmon
-T 参数:显示资源占有率较高的进程
-s 参数:-s 10表示每隔10秒采集一次数据
-c 参数:-s 10表示总共采集十次数据
-m 参数:指定文件保存目录
具体的参数学习可参考博客:https://www.cnblogs.com/iclk/p/4456311.html
如每隔5秒采集一次,一共采集12次,就是1分钟的数据(生成的文件已标红):
[[email protected] nmon16d]$ nmon -f -s 5 -c 12 -m /home/qgc/Desktop/ [[email protected] nmon16d]$ nmon -f -T -s 5 -c 12 -m /home/qgc/Desktop/ [[email protected] Desktop]$ ls lmon16g.c localhost_180827_2318.nmon nmon16d_x86.tar.gz localhost_180827_2317.nmon nmon16d Test
数据采集完毕后,如需关闭nmon进程,需要获取nmon的pid(已标红)
[[email protected] Desktop]$ ps -ef | grep nmon qgc 4455(pid) 4349(ppid) 0 23:40 pts/0 00:00:00 nmon qgc 4491 4429 0 23:40 pts/1 00:00:00 grep nmon
再安全杀掉该进程:kill -9 pid
[[email protected] Desktop]$ kill -9 4455 [[email protected] Desktop]$ ps -ef | grep nmon qgc 4493 4429 0 23:40 pts/1 00:00:00 grep nmon
通过sort命令可以将nmon结果文件转换为csv文件:
1 |
|
六,数据分析
1,下载nmon analyser
借助nmon analyser可以把nmon采集的数据生成直观的Excel表,nmon analyser可以在IBM的官网下载,https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power+Systems/page/nmon_analyser
在windows上下载后解压,有word和exce两个文档,Word是说明文档,包括更新日志,详细参数等,其中的Excel就是nmon analyser工具了。
2,打开nmon analyser
双击打开nmon analyser v54.xlsm,点击Analyze nmon data按钮:
注:因为我用的个人免费版WPS(10.1),没有包含宏,需要安装宏插件(VBA for WPS),Excel是自带宏插件的,如果宏不能运行,需要做以下操作:
工具 -> 宏 -> 安全性 -> 中,然后再打开文件并允许运行宏。
3,下载VBA for WPS
地址:https://pan.baidu.com/s/1QzW4ebQxYQtxgVfkTmxVJw,下载VBA7.0.1590_For WPS(中文).exe后,先退出WPS,再直接安装就行,再次打开nmon analyser,启用宏
4,使用nmon analyser生成图表
成功打开nmon analyser后,点击Analyze nmon data按钮,选择nmon数据文件,会再次提示另存为,选择地址保存即可。
下图就是nmon生成的数据报告截图,底部可以切换其他资源信息。
以上就是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的时间戳为现在真实的时间,方便更容易的分析 |