nmon是一款开源性能监控工具,用于监控linux系统的资源消耗信息,并能把结果输出到文件中,然后通过nmon_analyser工具产生数据文件与图形化结果。因为它免费,体积小,安装简单,耗费资源低,广泛应用于AIX和Linux系统。
一、nmon下载
我们在下载前首先查看Linux系统内核版本,因为不同的Linux版本,Nmon对应的版本也不同,Linux版本必须Nmon版本一一对应
1.查看Linux内核方法一
内核版本5.3.0-28-generic
2.查看Linux内核方法二
5.3.0-28-generic –内核版本
3.查看Linux内核方法三:直接问开发或者运维,简单粗暴
4.下载地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
二、nmon命令
./nmon_x86_64_centos7 -f -s 10 -c 60 -m ./log/
命令的含义是:
-f :按标准格式输出文件名称:<hostname>_YYYYMMDD_HHMM.nmon
-t :输出最耗资源的进程
-s :每隔n秒抽样一次,这里为10秒
-c :取出多少个抽样数量,这里为采集 60 次,
即监控 = 10*60 = 600秒 = 10分钟-m : 报告输入路径
nmonreport:监控记录的标题
hostname:主机名
三、nmon性能结果报告分析
1.下载nmon analyser(用于将Nmon采集的数据转换成可视化图表)
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power+Systems/page/nmon_analyser
2.双击打开nmon analyser v61.xlsm,切记不要用WPS,因为WPS不支持宏,点击Analyze nmon data按钮,,选择.nmon文件
(1)SYS_SUMM【服务器资源使用率汇总】
服务器资源使用率汇总表:整体信息页面,显示当前服务器的总体性能情况
【正上方】Samples、First、Last:采集点样本统计。
Samples:采集点样本总数,折线图中出现的采集点统计总数。
First:第一个采集点的采集时间。
Last:最后一个采集点的采集时间。
【正中间】折线图:[蓝线:CPU%]为cpu占有率变化情况;[紫线:IO/sec]为
磁盘IO的变化情况。
IO/sec:[紫线]仅显示磁盘IO/sec的图,不包括Network的I/O。
每秒钟输出到物理磁盘的传输次数。
【左下角】Disk tps statistics:磁盘的总体数据,包括如下几个:
1、Avg tps during an interval:
显示采集间隔内磁盘平均I/O次数,该值等于Sheet DISK_SUMM中
IO/sec列的平均值。
每个间隔时间内,平均每秒IO数,也可以理解为提交处理的次数。
2、Max tps during an interval:
显示采集间隔内磁盘最大I/O次数,该值等于Sheet DISK_SUMM中
IO/sec列的最大值。每个间隔时间内,每秒最大IO次数。
3、Max tps interval time:
显示磁盘最大I/O所在时间点。
最大传送次数出现的时间点。
4、Total number of Mbytes read:
显示采集间隔内磁盘读的总兆字节数,可能是nmon的bug,该值并不准确,
并且使用LVM划分的虚拟磁盘可能会存在重复统计。
整个监控时间内读的字节数。
5、Total number of Mbytes written:
显示采集间隔内磁盘写的总兆字节数,该值并不准确,理由同上。
整个监控时间内写的字节数。
6、Read/Write Ratio:
显示 Total number of Mbytes read/ Total number of
Mbytes written 的值。
实时读写比率。
【右下角】CPU:CPU的总体数据,包括如下几个:
// ********************* 橫行:CPU各项
指标 **************************** //
1、User%:显示采集间隔内所有CPU在User Mode下的Time占比。
2、Sys%:显示采集间隔内所有CPU在System Mode下的Time占比。
3、Wait%:显示采集间隔内所有CPU处于空闲且等待I/O完成的时间比例。
4、Idle%:CPU空闲率,显示采集间隔内所有CPU处于空闲Time的占比。
5、CPU%:cpu占有率,显示采集间隔内所有CPU的(user%+system%)占比和。
// ****************** 纵列:CPU各项指标数据
中的特殊值 ******************* //
1、Max:cpu各项指标数据中的最大值。
2、Avg:cpu各项指标数据中的整体平均值。
3、Max:Avg:cpu各项指标数据的最大值和平均值的比率。
1、Wait%是CPU空闲状态的一种,当CPU处于空闲状态而又有进程处于D状态
(不可中断睡眠)时,系统会统计这时的时间,并计算到Wait%里。
2、Wait% 不是一个时间值,而是时间的比例,因此在同样 I/O Wait 时间下:
服务器 CPU 越多,Wait% 越低,它体现了 I/O 操作与计算操作之间的比例。
3、对I/O密集型的应用来说一般Wait%较高,且Sheet PROC中Blocked也较高,
这时需关注是什么导致了过多的进程等待。
(2)MEM
1.内存(MB)报表:本 sheet 主图上显示空闲实存的数量
1、在 MEM 表里面使用如下公式计算出每行的内存使用率并进行取平均:
(Memtotal - Memfree - cached - buffers)/Memtotal * 100
即 =(C2-G2-L2-O2)/C2*100统计后手动绘制拆线图,如
2、通过分析内存使用率的趋势,可定位是否内存泄露情况。
3、有人看到内存使用率是 99%,就认为内存用满了,并没有区分内存分页是什么类型,这样武断的说内存用满了是不科学的。
4、在 AIX 上主要关注的是计算内存占整个物理内存的百分比,linux 上主要关注的是 active 内存占整个物理内存的百分比。
2.图表说明:
(3)CPU
Cpu使用率分为三部分,系统、用户和等待,分别对应图中红色、蓝色和灰色部分。
cpu使用率100%的情况,如果红色占大部分,说明系统进程本身占据大部分
cpu资源,可考虑系统是否存在过多僵尸进程或者系统进程存在死循环等原因;如果蓝色占大部分,说明用户进程占用大量cpu资源,可考虑被压系统是否
压力过大,或者被压系统存在大量运算等消耗cpu资源的操作。
目前100000+人已关注加入我们
听说转发文章
会给你带来好运
扫码立即关注我们微信号 : TesterRoad
公众号:测试工程师成长之路
“在看 ”的永远18岁~