服务端性能监控工具nmon的使用

概述

在性能测试过程中,需要对服务端的各项资源使用情况进行监控。

nmon简介

nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,记录的信息比较全面,

并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。

nmon可监控的数据类型

  • 内存使用情况
  • 磁盘适配器
  • 文件系统中的可用空间
  • CPU使用率
  • 页面空间和页面速度
  • 异步I/O,仅适用于AIX
  • 网络文件系统(NFS)
  • 磁盘I/O速度和读写比率
  • 服务器详细信息和资源
  • 内核统计信息
  • 消耗资源最多的进程
  • 运行队列信息

nmon监控工具的特点

  • 占用系统资源少(一般不到2%)
  • 功能强大(监控数据类型全面)

安装nmon

查看操作系统信息

[root@aliyun ~]# uname -a
Linux aliyun 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

查看需要被监控服务器的Linux发行版本

[root@aliyun ~]# lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.7.1908 (Core)
Release:	7.7.1908
Codename:	Core

可以看到操作系统为64位,Linux发行版本为CentOS7.7

下载nmon

手动下载nmon上传至服务器

去这个官方下载地址下载

选择第一个进行下载即可
nmon_download

然后解压缩,选择合适版本,上传到Linux服务器

➜  下载 mkdir nmon                          
➜  下载 tar -xzvf nmon16m_helpsystems.tar.gz -C nmon
nmon_power_64_centos6
nmon_power_64_centos7
nmon_power_64_linux
nmon_power_64_rhel6
nmon_power_64_rhel7
nmon_power_64_sles11
nmon_power_64le_centos7
nmon_power_64le_centos8
nmon_power_64le_linux
nmon_power_64le_rhel7
nmon_power_64le_rhel7_gpu
nmon_power_64le_rhel8
nmon_power_64le_sles12
nmon_power_64le_ubuntu14
nmon_power_64le_ubuntu16
nmon_power_64le_ubuntu18
nmon_x86_64_centos5
nmon_x86_64_centos6
nmon_x86_64_centos7
nmon_x86_64_centos8
nmon_x86_64_debian08
nmon_x86_64_debian09
nmon_x86_64_debian10
nmon_x86_64_mint18
nmon_x86_64_mint19
nmon_x86_64_oel5
nmon_x86_64_oel6
nmon_x86_64_oel7
nmon_x86_64_oel8
nmon_x86_64_opensuse10
nmon_x86_64_opensuse11
nmon_x86_64_opensuse12
nmon_x86_64_opensuse15
nmon_x86_64_rhel5
nmon_x86_64_rhel6
nmon_x86_64_rhel7
nmon_x86_64_rhel8
nmon_x86_64_sles10
nmon_x86_64_sles11
nmon_x86_64_sles12
nmon_x86_64_sles15
nmon_x86_64_ubuntu14
nmon_x86_64_ubuntu16
nmon_x86_64_ubuntu18
nmon_x86_64_ubuntu19
➜  下载 cd nmon
➜  nmon ls
nmon_power_64_centos6      nmon_power_64_linux   nmon_x86_64_mint19      nmon_x86_64_rhel8
nmon_power_64_centos7      nmon_power_64_rhel6   nmon_x86_64_oel5        nmon_x86_64_sles10
nmon_power_64le_centos7    nmon_power_64_rhel7   nmon_x86_64_oel6        nmon_x86_64_sles11
nmon_power_64le_centos8    nmon_power_64_sles11  nmon_x86_64_oel7        nmon_x86_64_sles12
nmon_power_64le_linux      nmon_x86_64_centos5   nmon_x86_64_oel8        nmon_x86_64_sles15
nmon_power_64le_rhel7      nmon_x86_64_centos6   nmon_x86_64_opensuse10  nmon_x86_64_ubuntu14
nmon_power_64le_rhel7_gpu  nmon_x86_64_centos7   nmon_x86_64_opensuse11  nmon_x86_64_ubuntu16
nmon_power_64le_rhel8      nmon_x86_64_centos8   nmon_x86_64_opensuse12  nmon_x86_64_ubuntu18
nmon_power_64le_sles12     nmon_x86_64_debian08  nmon_x86_64_opensuse15  nmon_x86_64_ubuntu19
nmon_power_64le_ubuntu14   nmon_x86_64_debian09  nmon_x86_64_rhel5
nmon_power_64le_ubuntu16   nmon_x86_64_debian10  nmon_x86_64_rhel6
nmon_power_64le_ubuntu18   nmon_x86_64_mint18    nmon_x86_64_rhel7
➜  nmon 

然后只要把nmon_x86_64_centos7这一个文件上传到服务器就可以了。

命令行方式直接在服务器上通过wget下载

wget http://sourceforge.net/projects/nmon/files/nmon16m_helpsystems.tar.gz

然后还是跟上边步骤一样,最后选择nmon_x86_64_centos7这个版本的文件即可。

安装nmon

# 改名
mv nmon_x86_64_centos7 nmon
# 给工具授权
chmod 777 nmon_x86_64_centos7

运行nmon

完成上面的操作后,执行 ./nmon 命令,出现如下界面,说明安装成功:
nmon主界面

常用快捷命令说明

# c
查看CPU相关信息
# m
查看内存相关信息
# d          
查看磁盘相关信息
# n          
查看网络相关信息
# t
查看相关进程信息
# h          
查看帮助相关信息

通过nmon采集服务器的性能数据

nmon通过命令行启动监控,捕获服务器的各项数据,命令如下

./nmon -ft -s 10 -c 60 -m /root/nmon 
# 参数说明 
-f   监控结果以文件形式输出,默认机器名+日期.nmon格式
-F   指定输出的文件名,比如test.nmon 
-s   指的是采样的频率,单位为毫秒 
-c   指的是采样的次数,即以上面的采样频率采集多少次 
-m   指定生成的文件目录
  • 一般来说不建议对稳定性测试使用nmon监控,因为生成的nmon文件超过10M时,分析工具会由于内存不足导致报错。
  • 如果必须进行的话,建议加大采样频次(比如60s,这样的话即使采集次数为60次,也都已经采集了一个小时的服务器性能数据了)降低采样次数(低于330次)。

监控结果分析

nmon监控捕获的信息(也就是生成的.nmon文件),可以用nmonchart来进行分析。

下载nmonchart

wget http://sourceforge.net/projects/nmon/files/nmonchart39.tar
mkdir nmonchart
tar -xf nmonchart39.tar -C nmonchart/
cd nmonchart
➜  nmonchart ll
总用量 3.9M
-rwx------ 1 mi mi  45K 11月 20  2019 nmonchart
-rwx------ 1 mi mi 1.6K 11月 20  2019 nmonchart_cron
-rw------- 1 mi mi  109 11月 20  2019 nmonchart_license
-rwx------ 1 mi mi 2.2K 11月 20  2019 nmon_upload.php
-rw------- 1 mi mi  17K 11月 20  2019 README
-rw------- 1 mi mi 197K 11月 20  2019 sampleC.html
-rw------- 1 mi mi 468K 11月 20  2019 sampleC.nmon
-rw------- 1 mi mi 828K 11月 20  2019 sampleD.html
-rw------- 1 mi mi 2.4M 11月 20  2019 sampleD.nmon

如上所示nmonchart就是用来解析xxx.nmon文件的,首先要给nmonchart授予可执行权限

# 授权
chmod 777 nmonchart
# 解析c3-dp-staging02_200603_1927.nmon文件数据
./nmonchart c3-dp-staging02_200603_1927.nmon

执行上边命令将会在当前目录下生成一个已解析完成的c3-dp-staging02_200603_1927.htmlHTML文件。

然后我们双击打开这个HTML文件就可以看到已经解析成功的数据了。
nmon解析完成的数据文件截图

具体指标参数说明参考官方文档最下边的Summary of the graphs(图形摘要)说明

最后,我这边提供了一个解析完成的HTML文件,可以直接在线进行查看。点我查看