一、nmon简介
nmon是由IBM 提供、免费监控 AIX 系统与 Linux 系统资源的工具。该工具可帮助在一个屏幕上显示服务器系统资源耗用情况,并动态地对其进行更新。此外,他还可以利用 excel 分析工具(nmon analyser)进行数据的统计分析。
二、具体功能
nmon收集的数据包括:
• CPU 使用率
• 内存使用情况
• 内核统计信息和运行队列信息
• 磁盘 I/O 速度、传输和读/写比率
• 文件系统中的可用空间
• 磁盘适配器
• 网络 I/O 速度、传输和读/写比率
• 页面空间和页面速度
• CPU 和 AIX 规范
• 消耗资源最多的进程
• IBM HTTP Web 缓存
• 用户自定义的磁盘组
• 计算机详细信息和资源
• 异步 I/O,仅适用于 AIX
• 工作负载管理器 (WLM),仅适用于 AIX
• IBM TotalStorage® Enterprise Storage Server® (ESS) 磁盘,仅适用于 AIX
• 网络文件系统 (NFS)
• 动态 LPAR (DLPAR) 更改,仅适用于面向 AIX 或 Linux 的 pSeries p5 和 OpenPower
三、软件获取
3.1 下载nmon
软件地址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
在下载之前,我们得查看一下自己linux系统的版本及CPU位数,然后选择相应的压缩包进行下载。如图,笔者的系统版本为:CentOS 7.2.1511,64位。
所以,选择如下图所示的版本nmon16g_x86.tar.gz 。
笔者本地的系统是windows,所以,就先下载到本地,在通过linux命令传到linux系统。
3.2下载nmon analyser
笔者下载的是最新版的。
下载之后将nmon analyser v55解压,得到一个.xlsm文件,打开即可(启用编辑)。
四、安装nmon
在安装nmon之前,笔者习惯先建立一个文件夹。
创建笔者的目录,并在此目录下创建nmon的目录:
mkdir mjj (创建笔者的目录)
ls(查看所有的目录,可以看到刚刚新建的目录)
进入笔者的目录
可以通过pwd命令查看笔者目录的确实路径。
再创建一个nmon目录,以便存放nmon的包。命令为mkdir nmon。
下面将将windows中下载的nmon上传至/home/dev/mjj/nmon目录下,(PS:在secureCRT中输入rz两个字符,从windows选择对应的文件,点击 Add 按钮,文件就被选中了。从linux到windows,执行sz命令,注意 sz命令后面需要加 filename,同样可以选择下载的路径,第一次修改之后,以后均默认下载到此处)
然后进行解压操作,命令为:tar –zxvf nmon16g_x86.tar.gz,解压后会得到如下几个文件:nmon16g_x86_fedora25、nmon16g_x86_rhel72、nmon16g_x86_sles12、nmon16g_x86_sles114、nmon16g_x86_ubuntu1604,解压后根据自己系统的实际版本查找相应的使用命令,并给命令赋予可执行的权限。本文用的是nmon16g_x86_rhel72,并给它赋予可执行的权限。命令为chmod +x nmon16g_x86_rhel72,
赋予权限后,执行以下命令会启动nmon ./nmon16g_x86_rhel72
看到这里就算成功了。我们可以通过一些快捷键调取关心的系统资源指标进行显示,如按键“C”可以查看CPU相 关信息;按键“D”可以查看磁盘信息;按键“T”可以查看系统的进程信息;“M”对应内存、“N”对应网络等等,完整的快捷键对应内容可以通过帮助(按键 “H”)查看,可以显示Linux系统CPU、内存、进程信息,包括了CPU的用户、系统、等待和空闲状态值,可用内存、缓存大小以及进程的CPU消耗等详细指标。该种方式显示信息实时性强,能够及时掌握系统承受压力下的运行情况,每颗CPU利用率是多少、内存使用多少、网络流量多少、磁盘读写……这些数据均是实时刷新,一目了然。
五、配置环境变量
以上的配置基本完成,但仍会有一个缺点,那就是使用最后的命令必须该命令的详细路径才能使用,这样不是很方便,所以我们需要将nmon的命令添加到系统环境变量中去,以方便我们可以在任何地方都可以使用该命令。
5.1 修改 /etc/profile 文件
命令 sudo vi /etc/profile,此命令输入之后会要求输入密码,对应的输入密码即可。
5.2 在 /etc/profile 文件的 最后 加入环境变量
(点击i可以进行编辑,点击esc退出编辑,$PATH:后为命令的路径)
5.3 退出并且保存
命令 :wq
5.4 立即生效
source /etc/profile(
PS:如果不执行 source 命令,则需重启系统才能生效)
好了,现在在任一个路径下输入nmon都可以运行nmon程序进行性能监控了。
六、采集监控数据
为了配合性能测试,我们往往需要将一个时间段内系统资源消耗情况记录下来,这时可以使用命令在远程窗口执行命令: # nmon -s 1 -c 60 -f -m /home/dev/mjj/nmon
参数说明:
-s 1 每隔n秒抽样一次,这里为1秒
-c 60 取出多少个抽样数量,这里为60,即监控=1*60/60=1分钟
-f 按标准格式输出文件名称:<hostname>_YYMMDD_HHMM.nmon
-m 指定监控文件的存放目录,-m后跟指定目录 //如果不指定目录会在该命令的源目录下生成相应的监控文件
七、生成图形化报表
通过后台监控和定期监控,我们可以得到扩展名为nmon的监控文件,这些文件记录着系统资源的数据,需要配合分析工具(nmon analyser)进行解读。
1、将/home/dev/mjj/nmon文件夹下生成的命令通过sz命令下载到本地
2、打开nmon_analyser的.xlsm
3、点击.xlsm文件界面上的Analyse nomn data按钮,将下载的下来的文件添加进去,最后会生成一个xlsm文件,如下图,可以选择自己需要查看的数据进行分析。
生成的报表中的参数意义:
八、定时任务
除配合性能测试的短期监控,我们也可以实现对系统的定期监控,作为运营维护阶段的参考。定期监控实现如下:
1) 执行命令:#crontab –e
2) 在最后一行添加如下命令:
0 8 * * 1,2,3,4,5 /nmon/nmon_x86_rhel72 -f -N -m /nmon/log -s 30 -c 1200
表示:周一到周五,从早上08点开始,监控10个小时(到18:00整为止),输出到/nmon/log
自动按天采集数据:
在 crontab 中增加一条记录:
0 0 * * * root nmon -s300 -c288 -f -m /home/ > /dev/null 2>&1
300*288=86400 秒,正好是一天的数据。