一、简介
nmon是一个简单的性能监测工具,可以监测CPU、内存、网络等的使用情况。它是一个系统监视、调优、性能测试工具,它能一次性提供大量性能相关的信息。
二、安装与执行
下载地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
下载后拷贝到指定目录下,增加可执行权限。下载时需要根据运行的不同平台选择二进制文件,当然也可下载源码编译。本人的运行系统为Centos7所以选择了nmon16e_x86_rhel71 。
将下载下来的文件(无后缀) rz到你想放入的Linux的目录中去。
修改其权限(以下指令均可)
chmod 777 *
chmod +x nmon16e_x86_rhel71
然后执行即可
./nmon16e_x86_rhel71
效果如下:
三、功能介绍
其实首页已经就是使用的介绍了。具体是通过一些快捷键调取关心的系统资源指标进行显示。
(1)按键“C”可以查看CPU相关信息;(2)按键“D”可以查看磁盘信息;
(3)按键“T”可以查看系统的进程信息;(4)“M”对应内存;(5)“N”对应网络等。
完整的快捷键对应内容可以通过帮助(按键 “H”)查看,可以显示Linux系统CPU、内存、进程信息,包括了CPU的用户、系统、等待和空闲状态值,可用内存、缓存大小以及进程的CPU消耗等详细指标。该种方式显示信息实时性强,能够及时掌握系统承受压力下的运行情况,每颗CPU利用率是多少、内存使用多少、网络流量多少、磁盘读写……这些数据均是实时刷新,一目了然。
注:按一次“c”显示cpu相关信息,在按一次则关闭,其余类推。效果分别如下:
(1)“c”——CPU实时监控效果(红色为柱形图)
(2)“d”——磁盘IO的信息(此时磁盘读写几乎没有)
(3)“t”——进程信息(可以看到主要是stress_client在占用CPU)——可替代top
(4)“m”——对应的内存(先按“t”关闭了进程信息显示)
(5)“n”——查看网络IO的信息(此时网络还是有数据的,但是需要换算一下)
(6)“k”——查看内核信息
具体指令介绍如下:
q : 停止并退出Nmon
h : 查看帮助信息
c : 查看 CPU 统计信息
m : 查看内存统计信息
d : 查看磁盘统计信息
k : 查看内核统计信息
n : 查看网络统计信息
N : 查看 NFS 统计信息
j : 查看文件系统统计信息
t : 查看 Top 进程统计信息
V : 查看虚拟内存统计信息
v : 详细输出模式
以上是基础使用方法。下面再补充一些命令和方法:
1、启动
打开nmon所在的目录:cd /usr/mysoftware/nmon
修改启动文件的访问权限:chmod 755 nmon16e_x86_rhel71
启动nmon:./nmon16e_x86_rhel71
如果要采样nmon的数据保存成文件,可以
./nmon16e_x86_rhel71 -s10 -c20 -f -m /usr/mysoftware/nmon
## 参数解释:
## -s10 每10秒采集一次数据
## -c20 共采集20次,即为采集200秒(20*10s)的数据
## -f 生成的数据文件名中包含文件创建的时间
## -m 指定生成数据文件的存放目录
## 这样就会生成一个文件名<hostname>_YYYYMMDD_HHMM.nmon的nmon数据文件,该文件每10秒采样更新一次,共采样20次。生成文件前后当前路径下的文件对比如下(我执行了三次):
利用nmonanalyser分析.nmon文件,此处下载
当测试结束后将.nmon文件sz下来,sz init0_180731_0551.nmon
打开nmon_analyser_v54.zip 包下的nmon analyser v54.xlsm文件,点击Analyse nomn data按钮,选择之前sz来下的.nmon文件。
(如果报告以下宏的安全级别太高错误,则在“工具 -- 宏 --安全性”里把级别调低,然后重新打开 nmon analyser v54.xlsm 文件)
待分析结束后会生成性能分析结果文件(文件格式为.xls,其中包括CPU,IO,内存等性能分析报告)。
分析结果中有很多数据和图形,简要介绍主要的性能参数图像。大致如下:
4.1 系统汇总(对应excel标签的‘SYS_SUMM’)
蓝线为cpu占有率变化情况;
粉线为磁盘IO的变化情况;
4.2磁盘读写情况汇总(对应excel标签的‘DISK_SUMM’)
蓝色为磁盘读的速率KB/sec
紫色为磁盘写的速率KB/sec
4.3内存情况汇总(对应excel标签的‘MEM’)
曲线表示内存剩余量(MB)
分析数据得到的报告文件(.xls)中包含很多性能分析结果数据,根据自己的需要查看。
2、nmon运行本身就消耗系统资源的;
另外如果取到.nmon文件后确定不再需要nmon继续收集信息则应kill掉nmon;
命令:
ps -A | grep nmon #得到pid
kill -9 pid
suse10 enterprise sp2:
nmon_x86_rhel3
使用对应的操作系统文件:
chmod +x nmon_x86_ubuntu810
mv nmon_x86_ubuntu810 /usr/local/bin/nmon
对于 Debian 还要做以下操作(不做也同样能运行):
apt-get install lsb-release
lsb_release -d | sed 's/Description:\t//' > /etc/debian_release
然后直接运行 nmon 即可。
采集数据并生成报表:
采集数据:
nmon -s10 -c60 -f -m /home/
参数解释:
-s10 每 10 秒采集一次数据。
-c60 采集 60 次,即为采集十分钟的数据。
-f 生成的数据文件名中包含文件创建的时间。
-m 生成的数据文件的存放目录。
这样就会生成一个 nmon 文件,并每十秒更新一次,直到十分钟后。
生成的文件名如: hostname_090824_1306.nmon ,"hostname" 是这台主机的主机名。
生成报表:
下载 nmon analyser (生成性能报告的免费工具):
http://www.ibm.com/developerworks/wikis/display/Wikiptype/nmonanalyser
把之前生成的 nmon 数据文件传到 Windows 机器上,用 Excel 打开分析工具 nmon analyser v33C.xls 。点击 Excel 文件中的 "Analyze nmon data" 按钮,选择 nmon 数据文件,这样就会生成一个分析后的结果文件: hostname_090824_1306.nmon.xls ,用 Excel 打开生成的文件就可以看到结果了。
如果宏不能运行,需要做以下操作:
工具 -> 宏 -> 安全性 -> 中,然后再打开文件并允许运行宏。
自动按天采集数据:
在 crontab 中增加一条记录:
0 0 * * * root nmon -s300 -c288 -f -m /home/ > /dev/null 2>&1
300*288=86400 秒,正好是一天的数据。
采样文件越来越大:
jackxiang@172.25.39.***:~/nmon# ./nmon -s1 -c33 -f
jackxiang@172.25.39.***:~/nmon#
jackxiang@172.25.39.***:~/nmon# du -sh *
8.0K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du -sh *
12K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du -sh *
16K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du -sh *
20K AD39_***_sles10_101207_1046.nmon
160K nmon
jackxiang@172.25.39.***:~/nmon# du -sh *
20K AD39_***_sles10_101207_1046.nmon
160K nmon
注:以上一些机器名称或系统名称,请根据实际情况自行调整及修改。