服务端监控性能的免费工具:Nmon系统使用情况采集+nmon_analyzer结果图形化
一、安装使用
监控,在检查系统问题或优化系统性能工作上是一个不可缺少的部分。通过操作系统监控工具监视操作系统资源的使用情况,间接地反映了各服务器程序的运行情况。根据运行结果分析可以帮助我们快速定位系统问题范围或者性能瓶颈点。
nmon是一种在AIX(IBM 公司的UNIX操作系统)与各种Linux操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。
nmon所记录的数据包含以下一些方面(也是我们在寻找问题过程中所关注的资源点):
● cpu占用率
●内存使用情况
●磁盘I/O速度、传输和读写比率
●文件系统的使用率
●网络I/O速度、传输和读写比率、错误统计率与传输包的大小
●消耗资源最多的进程
●计算机详细信息和资源
●页面空间和页面I/O速度
●用户自定义的磁盘组
●网络文件系统
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 analyser

将nmon.tar.gz用ftp工具上传服务器,并解压tar -zxvf,可以看到解压出很多shell脚本,后缀名是适应的系统

查看系统版本
uname -a
cat /etc/redhat-release

选择适用centos7脚本,运行命令./nmon_x86_64_centos7,出现下面界面代表成功


可以按提示字母,查看相应模块
# c 查看CPU相关信息
# m 查看内存相关信息
# d 查看磁盘相关信息
# n 查看网络相关信息
# t 查看相关进程信息
# h 查看帮助相关信息
# q 退出nmon

二、nmon采集数据
nmon通过命令行启动监控,捕获服务器的各项数据,命令如下:
./nmon_x86_64_centos7 -s 10 -c 60 -f -m /root/nmon
# 参数说明
-f 监控结果以文件形式输出,默认机器名+日期.nmon格式
-F 指定输出的文件名,比如test.nmon
-s 每隔多少秒抽样一次,单位是秒,上述命令配置是10s;
-c 采样次数,上述命令配置是60,即监控总时长为10*60=600秒
-m 指定生成的文件目录
该命令执行后,会在/home/nmon目录下生成以hostname_YYYYMMDD_HHMM.nmon格式命名的监控文件,并将监控数据写入文件,nmon进程会在监控完成后自动退出,如需强制退出,先查找nmon进程 “ps –ef | grep nmon”,然后kill掉即可。
生成文件:

三、nmon analyser结果图形化
使用nmon analyser对nmon文件进行解析,生成带图表信息的xlsx格式文件
1、服务器下载nmon文件
2、打开nmon analyser,选择nmon文件


3、生成带图表信息的xlsx格式文件

通过nmon analyser工具,我们已经将nmon文件转换成xlsx格式的结果文件,打开结果文件,可以发现每个sheet页对应一个指标数据,一般在性能测试中,主要关注以下指标:
SYS_SUMM
CPU_ALL
CPU_SUMM
DISK_SUMM
DISKBUSY
MEM
NET
每个指标对应结果文件中的同名sheet页,每个页面除了采样数据,还提供了对应的图表数据。在实际结果分析时,一般选择性能测试中所采样的数据,也就是说,如果你的nmon程序是在性能测试前就启动的,或者性能测试结束后仍然有采样的,此时的结果文件会包括一些非相关的数据。所以,我的建议是:在性能测试开始后启动nmon监控,通过设置监测时长使nmon在性能测试结束前退出。
1、系统汇总页面(SYS_SUMM):
该页面主要显示系统CPU(蓝线)和I/O(粉红线)的使用情况,其中坐标左纵轴为cpu(user%+sys%)使用率,横轴为运行时长,右纵轴为磁盘传输次数(Disk xfers),坐标图下方展示统计数

其中,User%为用户进程的CPU占比,Sys%为系统和中断的CPU占比,Wait%为进程阻塞等待完成一次IO请求的CPU占比,Idle%为空闲CPU占比。通常,CPU被充分使用的经验值是:User%:65%-70%;Sys%:30%-35%;Idle%:0%-5%。
2、CPU使用情况(CPU_ALL、CPU_SUMM):
CPU_ALL页面展示在采样周期内服务器的CPU的使用情况,实际上,与SYS_SUMM展示的CPU数据是相同的,区别只是前者使用线状图表示。

CPU_SUMM页面展示的是每颗CPU的使用情况,与使用top命令,按数字键”1”显示各颗CPU的效果是一样的。

3. 磁盘使用情况(DISK_SUMM、DISKBUSY):
DISK_SUMM页面主要显示磁盘读、写、IO情况,其中,需要注意的是:某一时间点的磁盘读写数据(Disk Read KB/s\Disk Write KB/s)等于该时间点上所有磁盘和分区的Read/Write的速率(KB/s)之和,分别与页面DISKREAD、DISKWRITE对应;某一采集时间点的IO/sec等于页面DISKXFER中该时间点上所有磁盘和分区的IO/sec之和。因此,该时间点上的I/O值统计是会有重复的。

DISKBUSY页面主要显示各个磁盘及分区的繁忙程度,是磁盘使用时间和全部时间的比值,即磁盘有百分之多少时间是活动的。通常,根据该页面显示的磁盘百分比数据,可以快速了解该磁盘的使用情况。

4. 内存使用情况(MEM):
MEM页面主要显示系统总内存、已用内存、可用内存、swap、cached等内存统计信息,统计单位为MB,图表左轴有个”千”字,单位换算后,memfree约19G,如图:

5. 网络使用情况(NET):
NET页面显示服务器各个网络适配器读写数据情况,单位KB/s,注意与带宽单位(bps)的换算,1MB/s = 8Mbps,如图:


浙公网安备 33010602011771号