一、nmon介绍

nmon最早集成在IMB AIX内,于2009年开源。nmon系统支持常用发行版 Linux 、IBM POWER、 Mainframe和ARM;
运维人员通过nmon可以动态查看当前CPU负载,内存使用率、网络负载等,也可以进行时间段内数据采集,通过图表展示;
在这里插入图片描述

1.1 nmon优点
  • 无需编译,开箱即用
  • 非常小巧,二进制文件不到400KB
  • 采集文件小,一个小时大概1M左右的数据量
  • 支持多平台,从UNIX到主流Linux、ARM都支持
  • 支持本地图形解析

官方网站:
http://nmon.sourceforge.net/pmwiki.php?n=Site.Download

1.2 下载、解压

nmon最新的版本为16m

wget https://nchc.dl.sourceforge.net/project/nmon/nmon16m_helpsystems.tar.gz

#解压
mkdir nmon
tar xvf nmon16m_helpsystems.tar.gz -C /opt/nmon

如果需要支持ARM的请下如下版本

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

解压完以后,有非常多的二进制文件,可以根据自身的平台选择。比如我的操作系统是CentOS7,就选择nmon_x86_64_centos7

nmon_power_64_centos6      nmon_power_64le_rhel8     nmon_power_64_rhel7   nmon_x86_64_debian09  nmon_x86_64_oel8        nmon_x86_64_rhel7     nmon_x86_64_ubuntu16
nmon_power_64_centos7      nmon_power_64le_sles12    nmon_power_64_sles11  nmon_x86_64_debian10  nmon_x86_64_opensuse10  nmon_x86_64_rhel8     nmon_x86_64_ubuntu18
nmon_power_64le_centos7    nmon_power_64le_ubuntu14  nmon_x86_64_centos5   nmon_x86_64_mint18    nmon_x86_64_opensuse11  nmon_x86_64_sles10    nmon_x86_64_ubuntu19
nmon_power_64le_centos8    nmon_power_64le_ubuntu16  nmon_x86_64_centos6   nmon_x86_64_mint19    nmon_x86_64_opensuse12  nmon_x86_64_sles11
nmon_power_64le_linux      nmon_power_64le_ubuntu18  nmon_x86_64_centos7   nmon_x86_64_oel5      nmon_x86_64_opensuse15  nmon_x86_64_sles12
nmon_power_64le_rhel7      nmon_power_64_linux       nmon_x86_64_centos8   nmon_x86_64_oel6      nmon_x86_64_rhel5       nmon_x86_64_sles15
nmon_power_64le_rhel7_gpu  nmon_power_64_rhel6       nmon_x86_64_debian08  nmon_x86_64_oel7      nmon_x86_64_rhel6       nmon_x86_64_ubuntu14

创建软连接
假如nmon安装在/opt/nmon/下

 ln -s /opt/nmon/nmon_x86_64_centos7 /usr/bin/nmon
二、使用

如果直接查看当前运行数据,可以直接命令行执行nmon,根据界面提示的选项选择查看数据
在这里插入图片描述
如果需要收集每个时间段的运行数据,可以使用nmon的采集功能;
nmon采集主要参数如下:

For Data-Collect-Mode
	-f            # 必选项,保存数据到本地目录中,格式为.nmon。
	              # 不指定采集间隔(默认为秒)或者快照数默认为-s300 -c288,即每5分钟采集一次,采集288次停止;
	-s <seconds>  # 采集间隔时间
	-c <count>    # 采集次快照数,采集多少次后停止采集
	-t            # 采集系统进程和数据,(-T能收集命令参数)
	-x            # 采集规划 Capacity Planning=15 min snapshots for 1 day. (nmon -ft -s 900 -c 96)
2.1 开始采集

创建采集目录

mkdir -p /data/nmon/

开始采集,采集的快照次数量不要太多,每次保持在500~800次最好

例子1:简单捕获,每2分钟采集一次,快照采集到720次停止采集

nmon-f-s120-c720 -m/data/nmon/

例子2:捕获具有系统进程的快照

nmon-fT-s120-c720 -m/data/nmon/

例子3:捕捉系统负载过大时的快照,5秒采集一次

nmon-fT-s5-c720 -m/data/nmon/

采集开始后,在对应的存储目录下,会形成一个文件,格式为:主机名_日期_采集时间
比如我新建了一个简单采集,每隔2分钟采集一次,采集到10次后自动退出;这样每隔2分钟可以查看到
pev_211201_1138.nmon更新一次时间戳

nmon -f -s120 -c10 -m /data/nmon/

在这里插入图片描述

2.2 停止采集

在指定的采集次数后,nmon会自动停止进程。如果想手动停止采集,可以使用ps -ef |grep nmon查看nmon的PID,然后使用kill -USR2 PID号杀掉进程号即可,切记不能使用kill -9,会造成nmon采集文件损坏,无法解析

# 查看进程
ps -ef |grep nmon
root      3116     1  0 11:38 pts/0    00:00:00 nmon -f -s120 -c10 -m /data/nmon/
root      4119 28852  0 11:54 pts/0    00:00:00 grep --color=auto nmon

# 杀掉进程
kill -USR2 3116
2.2 解析
2.2.1 nmonchart解析

nmonchart可以将nmon采集的数据解析成网页格式(html),通过Javascript使用谷歌图表库https://developers.google.com/chart/ ,解析成图表文件,方便运维人员分析数据;
注:此方法需要翻墙支持
下载、解压 nmonchart

wget http://sourceforge.net/projects/nmon/files/nmonchart40.tar
tar zvf nmonchart40.tar -C /opt/nmonchart/

做软连接

ln -s /opt/nmonchart/nmonchart /usr/bin/nmonchart

开始转换
nmonchart是Korn shell编写的,和centos上的bash不通用,需要另外安装ksh

yum install ksh

转换语法为

nmonchart file_name.nmon out_file_name.html

例如将pev_211201_1138.nmon转换为test.html

nmonchart pev_211201_1138.nmon test.html

开启VPN,下载到本地通过浏览器打开等待几秒即可,点击上面的标签可以看对应的负载
在这里插入图片描述

2.2.2 nmon Analyser解析

nmon Analyser通过EXCEL把nmon采集的数据转换成图表模式,推荐使用Micsoft office2016。
注:对于大型 nmon 数据文件 (10+ MB),强烈建议安装 64 位 Microsoft Excel 2016 或更高版本,并且 本机内存至少为 8 GB,最好为 16 GB 或更多;

下载nmon Analyser
通过浏览器下载即可,地址为https://altushostswe.dl.sourceforge.net/project/nmon/nmon_analyser_v69.zip
注:有可能下载不成功,可以多试几次
下载完成后,有个一个PDF文件和一个EXCEL文件,其中EXCEL起到解析作用
在这里插入图片描述
把nmon生成的文件(格式为.nmon),下载到本地,EXCEL或者WPS表格开启宏,打开nmon analyser v69_2.xlsm表格文件,点击Analyze nmon data添加nmon文件。

在这里插入图片描述
等待一段时间解析后即可查看文件,
在这里插入图片描述

三 普通采集与进程采集区别

普通采集 nmon -f -s120 -c10与进程采集nmon -fT -s120 -c10,进程采集多了2个选项Top SummaryTop Commands
在这里插入图片描述
Top Summary:采集时间内资源占有率比较高的进程项
在这里插入图片描述

Top Commands:采集时间内CPU占有率比较高的command命令记载

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐