【性能工具】Linux性能监控工具nmon使用指南

1 NMON部署

1.1工具简介

Nmon是一款广泛使用在Aix与Linux操作系统上的监控与分析工具,它记录的信息非常全面,并支持生成数据文件与图形化结果。

1.2 部署环境要求

支持广泛:

  • 操作系统(Red      Hat, SUSE, Ubuntu, Fedora, OpenSUSE等)

  • 平台      (Power, Mainframe, arm, x86 or x86_64)

1.3 安装方法

Nmon工具安装非常简单,具体步骤如下:

  • 下载不同AIX和LINUX版本对应的nmon

  • 将NMON放在服务器文件夹中

  • 给NMON赋予可执行权限:chmod +x nmon

  • 运行NMON:./nmon


可从官网或SVN获取工具:


2 NMON使用

2.1 NMON监控内容

Nmon能提供的监控内容非常全面,其中包括:

  • CPU使用率

  • 内存使用情况

  • 磁盘I/O速度、传输和读写比率

  • 文件系统的使用率

  • 网络I/O速度、传输和读写比率、错误统计率与传输包的大小 

  • 消耗资源最多的进程

  • 计算机详细信息和资源

  • 用户自定义的磁盘组

  • 网络文件系统

2.2 NMON使用方法

NMON提供了灵活的监控方法,既可以进行实时监控,也可以后台监控,其中后台监控会将监控信息写入文件,配合使用nmon analyser解析数据文件、生成图形化监控结果。

2.2.1 实时监控

Nmon安装后,切换到工具目录,执行”./nmon”命令(名称以实际文件名而定,64位平台文件名为nmon_linux_64)即可运行程序。打开交互式窗口后,使用快捷键可以查看系统资源使用情况,如按“c”可以查看CPU相关信息;按“d”可以查看磁盘信息;按“t”可以查看系统进程信息,“m”、“n”分别对应内存和网络;按“H”可以查看帮助信息。该监控方法实时性强,可以及时了解系统的运行情况。

部分资源监控操作举例如下:

1)  运行./nmon_linux_64,即可进入nmon实时监控界面,如图所示:

1.png

2)  ”c” 查看CPU使用情况:

2.png

3)  ”m” 查看内存使用情况:

3.png

4)  ”d” 查看磁盘IO使用情况:

4.png

5)  ”n” 查看网络使用情况:

5.png

2.2.1 后台监控

在性能测试中,通常会借助nmon对测试期间的系统资源进行跟踪记录并写入文件,以便后续分析,常用监控命令如下:

./nmon_linux_64 -s 10 -c 60 -f -m /home/nmon

其中各参数表示:

-s : 每隔多少秒抽样一次,单位是秒,上述命令配置是10s;

-c :采样次数,上述命令配置是60,即监控总时长为10*60=600秒;

-f :按标准格式输出文件hostname_YYYYMMDD_HHMM.nmon;

-m : 指定文件保存路径;

该命令执行后,会在/home/nmon目录下生成以hostname_YYYYMMDD_HHMM.nmon格式命名的监控文件,并将监控数据写入文件,nmon进程会在监控完成后自动退出,如需强制退出,先查找nmon进程 “ps –ef | grep nmon”,然后kill掉即可。

2.3 NMON监控结果分析

通过后台监控方式生成的.nmon文件,实际上是文本文件,可以直接用记事本或其他文本编辑工具打开,但可视化效果不好,也不方便分析。因此,通常使用nmon analyser对nmon文件进行解析,生成带图表信息的xlsx格式文件。

2.3.1 解析nmon文件

Nmon文件解析工具是nmon analyser,该工具可以从以下地址获取:

  • 官网地址:https://www.ibm.com/developerworks/aix/library/au-nmon_analyser/


获取工具后,无需安装,进入工具目录,双击nmon analyser vxx_x.xlsm格式的文件,即可打开工具界面,如图所示:

6.png

如果界面提示安全警告,“宏已被禁用”,点击【启用内容】即可,如上图红框内容所示。此时,点击【Analyze nmon data】,在windows文件选择框中选择待分析的nmon文件,等待分析、处理完成后,会在nmon文件目录下生成同名但后缀名为.xlsx的文件,后续分析在该xlsx文件中进行即可。

2.3.2 分析结果文件

通过nmon analyser工具,我们已经将nmon文件转换成xlsx格式的结果文件,打开结果文件,可以发现每个sheet页对应一个指标数据,一般在性能测试中,主要关注以下指标:

  • SYS_SUMM

  • CPU_ALL

  • CPU_SUMM

  • DISK_SUMM

  • DISKBUSY

  • MEM

  • NET

每个指标对应结果文件中的同名sheet页,每个页面除了采样数据,还提供了对应的图表数据。在实际结果分析时,一般选择性能测试中所采样的数据,也就是说,如果你的nmon程序是在性能测试前就启动的,或者性能测试结束后仍然有采样的,此时的结果文件会包括一些非相关的数据。所以,我的建议是:在性能测试开始后启动nmon监控,通过设置监测时长使nmon在性能测试结束前退出。

接下来,对以上几个主要指标页面进行介绍。

2.3.3 主要指标页面介绍

1. 系统汇总页面(SYS_SUMM):

该页面主要显示系统CPU(蓝线)和I/O(粉红线)的使用情况,其中坐标左纵轴为cpu(user%+sys%)使用率,横轴为运行时长,右纵轴为磁盘传输次数(Disk xfers),坐标图下方展示统计数据。

7.png

其中,User%为用户进程的CPU占比,Sys%为系统和中断的CPU占比,Wait%为进程阻塞等待完成一次IO请求的CPU占比,Idle%为空闲CPU占比。通常,CPU被充分使用的经验值是:User%:65%-70%;Sys%:30%-35%;Idle%:0%-5%。

 

2. CPU使用情况(CPU_ALLCPU_SUMM):

CPU_ALL页面展示在采样周期内服务器的CPU的使用情况,实际上,与SYS_SUMM展示的CPU数据是相同的,区别只是前者使用线状图表示。

8.png

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

9.png


3. 磁盘使用情况(DISK_SUMMDISKBUSY):

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

10.png

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

11.png

4. 内存使用情况(MEM):

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

12.png

5. 网络使用情况(NET):

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

13.png


3 总结
   nmon是linux平台一款优秀的性能监控工具,除了功能齐全的是啥交互模式外,更常用的功能是后台监控,通过一条命令即可获取服务器全面的资源使用数据,正因为这样,官网对自己工具的评价耐人寻味,“Why use five or six tools when one free tool can give you everything you need!!


4 其他资源

  关于python学习、分享、交流,笔者开通了微信公众号【小蟒社区】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学python。


猜你喜欢

转载自blog.51cto.com/2681882/2309149