Linux性能监控工具Nmon的安装使用、生成数据报告
目录结构
一、Nmon工具简介
二、本次操作可能用到的Linux命令
三、CentOS中安装Nmon,并使用Nmon监控和采集数据
    1.下载并安装Nmon的过程
    2.执行脚本,启动Nmon
    3.初始化Nmon工具
    4.运行Nmon与查看监控的操作
    5.采集数据
四、利用Nmon Analyser分析Nmon采集的数据,生成数据报告
    1.设置共享文件夹,联通VMware虚拟机中CentOS系统和物理主机系统
    2.物理主机从共享文件夹获取采集的数据
    3.下载Nmon Analyser
    4.利用Nmon Analyser分析数据,并生成数据报告
一、Nmon工具简介
Nmon工具:是IBM提供的免费在AIX系统(Advanced Interactive eXecutive,高级交互执行体,类UNIX操作系统)、各种Linux操作系统上广泛使用的监控与分析工具。
该工具可将服务器的系统资源耗费使用情况收集起来并输出一个特定的文件,并可利用excel分析工具 Nmon Analyser 进行数据的统计分析。并且,Nmon运行不会占用过多的系统资源,通常情况下CPU利用率不会超过2%。针对不同的操作系统版本,Nmon有相应版本的程序。
二、本次操作可能用到的Linux命令
| 操作命令 | 作用 | 
|---|---|
| lsb_release -a | 查看系统版本号(root权限使用) | 
| cd / | 进入系统根目录 | 
| cd aaa/bbb/.../ccc | 进入指定文件目录 | 
| cd .. | 返回上一级目录 | 
| pwd | 显示当前目录的绝对路径 | 
| rm -rf <filename> | 删除指定文件or文件夹 | 
| rm -rf /aaa/.../bbb/xxx.txt | 删除指定路径下的文件 | 
| mv {dir} filename {new dir} filename | 移动一个目录文件到指定新位置 | 
| cp {dir} filename1 {new dir} filename2 | 将某个路径下的filename1文件复制到新路径下,并重命名该文件为filename2 | 
| chmod +x filename | 增加文件的可执行权限 | 
| chmod 777 filename | 增加文件的可读、可写、可执行权限 | 
| ls | 列出当前路径下的所有文件和目录的名称,没有展示其他详细信息 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) | 
| ls -a | 列出所有文件及目录(会列出包含名称开头为"."的隐藏档) | 
| ls -l | 列出所有文件名称、文件型态、权限、拥有者、文件大小等详细信息(不会列出隐藏档的信息) | 
| ls -la | 列出所有文件名称、文件型态、权限、拥有者、文件大小等详细信息(会列出包含名称开头为"."的隐藏档的详细信息) | 
| ps -ef|grep nmon | 查找nmon程序的的进程pid号 | 
| kill -9 pid | 删除nmon进程,类似于Windows系统任务管理器中的结束进程 | 
三、CentOS中安装Nmon,并使用Nmon监控和采集数据
操作环境:
VMware 11 + CentOS 5.1
VMware 12.5 + CentOS 6.3
1.下载并安装Nmon的过程
# 在指定位置创建一个新目录nmon
mkdir /usr/local/nmon
# 切换到所创建nmon目录的路径下
cd /usr/local/nmon
# 获取并下载指定版本的nmon程序到当前目录
wget https://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz
# 解压下载的nmon压缩包
tar zxvf nmon_linux_14i.tar.gz
# 为nmon配置[可读、可写、可执行](-rwxrwxrwx)权限(64-bit系统)
chmod 777 nmon_x86_64_sles11
查看操作系统版本和位数:lsb_release -a
CentOS 6.3,64bit

在执行wget命令下载nmon的过程中,若下载不成功,出现提示"Unable to establish SSL connection",则可参看此文==>CentOS使用wget命令提示"Unable to establish SSL connection"_解决方案
以CentOS 6.3系统为例,修改操作命令为:wget https://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz --no-check-certificat
对于CentOS 5.1系统,修改操作命令为 :wget https://nchc.dl.sourceforge.net/project/nmon/nmon_linux_14i.tar.gz --no-check-certificat
即可成功下载nmon程序的压缩包,如下:


查看下载完成的nmon的gz压缩包

OR
也可以手动在以下URL下载适配操作环境的Nmon版本,然后通过主机和虚拟机的共享文件夹移动到Linux虚拟机中
传送门:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download

解压nmon压缩包:tar zxvf nmon_linux_14i.tar.gz
z : 表示 tar包是被gzip压缩过的,需用gunzip解压
x : 从tar包中把文件提取出来
v : 显示详细信息
f:f后面必须跟上要处理的文件名,不能调换f的位置
.tar.gz是一个压缩包,.tar只是打包而没有压缩

解压后通过命令ls可查看到其下的2个脚本程序
nmon_x86_64_sles11 ==> 64-bit
nmon_x86_sles11 ==>32-bit

为nmon配置可读、可写、可执行权限:chmod 777 nmon_x86_64_sles11
执行以上命令后,再通过命令ls -la查看所有文件的配置权限

2.执行脚本,启动Nmon
操作命令:./nmon_x86_64_sles11

3.初始化Nmon工具(这一步可以忽略,主要是为了在任意路径下去执行启动Nmon)
给Nmon文件授予可执行权限:chmod +x nmon

为了使Nmon在当前操作系统环境中任何路径下都能运行,在64位CentOS中,需要将nmon_x86_64_centos6文件移动到执行文件夹bin目录(环境变量目录)之下,并命名为nmon:mv nmon_x86_64_centos6 /usr/local/bin/nmon


4.运行Nmon与查看监控的操作
在Liunx命令窗口输入nmon,回车,即可进入到Nmon监控界面

输入操作指令:
c ==> CPU:显示CPU利用率数据
m ==> Memory:显示内存数据
n ==> Network:显示网络信息
d ==> Disk:显示磁盘信息
t ==> Top Processes:系统的进程信息
h ==> Help:查看帮助信息
q ==> Quit:退出Nmon界面



【nmon实时监控】
可以使用nmon进行实时监控,命令主要包括三种类型:
- 帮助命令
- 监控参数命令
- 监控辅助命令
(3.1)帮助命令
帮助命令为“H”,通过H命令可以了解到nmon的命令及作用

(3.2)监控命令
| 命令 | 英文解释 | 作用 | 
| c | C | c = CPU Util ; C = wide view | 用于监控CPU的使用情况。针对每核CPU的四种状态进行统计: User%:用户使用CPU百分比 Sys% :系统使用CPU百分比 Wait%:CPU(非空闲)等待百分比 Idle%:空闲CPU百分比 | 
| m | L | m = memory & swap ; L = Large(Huge) Page | 用于监控内存及交换空间的使用情况,还可以使用“L”命令查看Large(Huge) Page的使用情况 | 
| n | n = network | 监控每块网卡的I/O情况,主要监控 --每秒接受/发送的流量 --进出网卡的package的数量 --进出流量(默认是2秒) --每秒接受/发送的流量的峰值 | 
| d | d = Disk I/O Graphs D = Status | 监控磁盘I/O情况,通过这个命令,可以看到磁盘的繁忙程度,读写速度,用“D”可以看到更细节的磁盘I/O信息 注:如果磁盘sda分区成为:sda1、sda2,那么会显示三个磁盘(sda、sda1、sda2)的信息。 | 
| k | k = kernel status & loadavg | 监控内核状态及负载,通过这个参数,可以了解到CPU具体消耗在哪些地方 --全部CPU的使用负载,CPU具体耗费在哪些地方也有所描述,不同于前面c或C对单个CPU统计 --全部CPU的平均负载(1min、5min、15min) | 
| M | M = MHz by thread & CPU | CPU的时钟震荡频率 | 
| t | t = Top Process,可选参数: --1:Priority/Nice/STate --3:CPU --4:RAM --5:I/O | 顶级进程,可通过一下方式排序 --1:基础方式,个人感觉不实用 --3:按CPU消耗排序 --4:按内存消耗排序 --5:按I/O消耗排序 | 
| g | g = User Defined Disk Groups | 用户定义的磁盘组信息 | 
| r | r = Resources OS & Proc | 操作系统资源信息,如: --CPU型号、CPU频率、每颗CPU的物理内核、超线程、虚拟CPU数量 --操作系统版本:linux版本、redhat版本 | 
| l | l = long term CPU averages | 长期的CPU负载监控。类似于windows任务管理器提供的CPU监控功能 | 
| V | v = Virtual Memory | 虚拟内存使用情况 | 
| N | N = NFS | NFS网络文件系统I/O统计 | 
| o | o = Disk %Busy Map | 通过MAP图,记录了哪些磁盘在使用,哪些磁盘未使用 | 
| j | j = Filesystem Usage | 文件系统的使用情况,类似于df -h | 
| u | u = Top Process with command line Hit u twice to update | 顶级进程,带有两次去更新数据操作 | 
| G | G = with -g switches Disk Graphs to disk groups only | 不清楚具体作用,略 | 
(3.3) 辅助监控命令
| 命令 | 英文解释 | 作用 | 
| “+” (shift+“+”) | “+” = double the screen refresh time | 屏幕刷新频率改为2倍 | 
| “-” | “ - ” = half the screen refresh time | 屏幕刷新频率改为一半 | 
| “.” | “.” = Display only busy disk & CPU | 标出处于繁忙状态的CPU | 
| 0 | 0 = reset peak marks(">") to zero | 将峰值重新设置为0 | 
| space | space refresh screen now | 空格键手动刷新屏幕 | 
| b | black & white mode | 颜色显示为黑白模式 | 
| q | q = Quit | 退出 | 
5.采集数据
nmon -s3 -c100 -f -m /usr/local/DataCollect
-s3   每3秒采集一次数据
-c100  采集100次,即采集5分钟(100*3=300s=5min)的数据
-f    生成的数据文件名中,包含文件创建的时间(按照标准格式输出文件名称:<hostname>_YYMMDD_HHMM.nmon)
-m    生成数据文件的存放目录
 【自动按天采集数据】
/**http://www.ibm.com/developerworks/cn/aix/library/nmon_analyser/index.html)
在 crontab 中增加一条记录:
0 0 * * * root nmon -s300 -c288 -f -m /home/ > /dev/null 2>&1
300*288=86400 秒,正好是一天的数据。
参考文章:
nmon 性能:分析 AIX 和 Linux 性能的免费工具:
http://www.ibm.com/developerworks/cn/aix/library/analyze_aix/index.html
nmon analyser —— 生成 AIX 性能报告的免费工具:
*/
执行以上命令成功之后,就会生成一个Nmon监控结果文件localhost_180828_1904.nmon,且每3秒更新一次,直至300s后为止

ps -ef|grep nmon查询进程pid号,然后kill掉该进程以停止监控(类似于Windows系统任务管理器结束进程)。ps -ef|grep nmon
kill -9 pid
以上 "9" 代表信号变量 SIGKILL
四、利用Nmon Analyser分析Nmon采集的数据,生成数据报告
1.设置共享文件夹,联通VMware虚拟机中CentOS系统和物理主机系统
在VMware虚拟机中安装完成VMware Tools工具的前提下,点击【虚拟机-->设置-->虚拟机设置:选项-->文件夹共享-->总是启用-->添加-->添加物理机中指定路径下的文件夹作为和VMware内CentOS系统中的共享文件夹-->确定】

输入命令:vmware-hgfsclient
可查看到刚才新创建的共享文件夹的目录名

VMware默认共享文件夹的目录为 /mnt/hgfs/

2.物理主机从共享文件夹获取采集的数据
输入命令:cp /usr/local/DataCollect/localhost_180828_1904.nmon /mnt/hgfs/VmShare
将采集到的数据复制到共享文件夹中,即可在物理主机中使用该采集数据

回到物理主机,已可在所创建的共享文件夹中查看到Nmon采集的数据文件

3.下载Nmon Analyser
下载传送门:https://developer.ibm.com/technologies/systems/articles/au-nmon_analyser/


下载完成,解压后的文件如下:

4.利用Nmon Analyser分析数据,并生成数据报告
将之前生成的 nmon 数据文件传到 Windows 机器上,用 Excel 打开分析工具 nmon analyser v33C.xls 。点击 Excel 文件中的 "Analyze nmon data" 按钮,选择 nmon 数据文件,这样就会生成一个分析后的结果文件: hostname_090824_1306.nmon.xls ,用 Excel 打开生成的文件就可以看到结果了。
如果宏不能运行,需要做以下操作:
工具 -> 宏 -> 安全性 -> 中,然后再打开文件并允许运行宏。
双击打开文件 nmon analyser v54.xlsm,允许启用宏

点击【Analyze nmon data】按钮,将Nmon采集的数据从共享文件夹中导进来

Nmon Analyser经过对采集的数据分析后生成数据报告,如下:
localhost_180828_1904.nmon.xlsx

生成的.xlsx文件中的部分数据报表如下:



【异常处理】
使用WPS文档启用宏执行分析nmon文件时可能出现异常提示:运行时错误 '13': 类型不匹配
解决方案:将电脑系统桌面右下角的日期格式(如:yyyy/MM/dd dddd)调整为去掉"dddd"的格式(如:yyyy/MM/dd)



[1] CentOS6.4 安装nmon
[2] Linux下使用NMON监控、分析系统性能
[3] VMware中CentOS 7设置文件夹共享的方法
[4] nmon 运行时错误 13 类型不匹配
转载于:https://www.jianshu.com/p/51c96f475eb1
 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号