Nmon简单使用和分析结果介绍

Nmon是由IBM 提供、免费监控 AIX 系统与 Linux 系统资源的工具。该工具可将服务器系统资源耗用情况收集起来并输出一个特定的文件,并可利用 excel 分析工具(nmon analyser)进行数据的统计分析。

软件组成

Nmon使用需要nmon工具和nmonanalyser分析程序两者配合使用。nmon工具生成性能数据文件,然后monanalyser以nmon生成的数据文件作为输入,输出为Excel电子表格,并自动地生成相应的图形,使用户能够直观地观察OS性能(CPU、IO和内存等)的变化过程。

配置定时任务

1.用root用户登录系统,建立nmon日志存储目录;

mkdir -p /home/centos/nmon/nmon_data(示例)

2.创建nmon工具运行脚本文件;

vi /home/centos/nmon/shell/nmon.sh
//在nmon.sh文件中加入以下内容,nmon命令的路径根据具体情况修改:
/home/centos/nmon/nmon_x86_64_centos7 -s 600 -c 144 -f -m /home/centos/nmon/nmon_data

该命令启动后,会在/home/centos/nmon/nmon_data目录下生成监控文件,并持续写入资源数据,直至所有监控点收集完成,这些操作均自动完成,无需手工干预,用户可以继续完成其他操作。如果想停止该监控,需要通过“ps –ef|grep nmon”查询进程号,然后杀掉该进程以停止监控。

参数 说明
/home/centos/nmon/nmon_x86_64_centos7 Nmon执行脚本,选择适合自己系统的版本,此处示例为nmon_x86_64_centos7
-s 每隔多少秒抽样一次,此处为600(10min)
-c 取出多少个抽样数量,此处为144(即监控总时长=144*10/60=24h)
-f 按标准格式输出文件:_YYYYMMDD_HHMM.nmon
-m 切换到预设路径去保存日志文件,此处示例为/home/centos/nmon/nmon_data

3.为nmon.sh文件添加可执行权限;

chmod +x /home/centos/nmon/shell/nmon.sh

4.启动nmon,添加crontab item;

crontab -e
0 0 * * * /home/centos/nmon/shell/nmon.sh

5.如需停止nmon,可注释crontab item;
6.nmon开始运行后,每天在/home/centos/nmon/nmon_data下产生一个文件,文件名包含日期如bigdata4_190628_1828.nmon;
7.nmon数据文件定期备份定期清理;

  1. 使用nmon analyser解析监控文件生成分析结果文件bigdata4_20190628_1828.nmon.xlsx。


    nmon analyser

分析结果文件说明

分析结果文件为一个excel表格,里面分为SYS_SUMM、CPU_ALL、MEM、DISK_SUMM等多个标签页,每个标签页都有该主题下监控的明细数据和对应的统计图表,如下图所示:
系统汇总界面

每个标签页都展示了对某一指标如CPU、内存、网络、I/O的详细监控数据,需要重点关注的几个监控指标如下:

1.系统汇总界面:对应标签页(SYS_SUMM)
SYS_SUMM统计图表

页面显示项主要有主机名,执行日期,系统cpu使用情况(蓝线),系统I/O情况(粉红线),其中坐标左纵轴为系统cpu(user%+sys%)使用率,横轴为运行时长(下图为一个小时),右纵轴为系统磁盘传输(Disk xfers),坐标下侧为统计信息:系统I/O情况(一个采集间隔内的平均值、最大值、出现最大值的时间),系统CPU使用情况等。

参数 说明
Avg disk tps during an interval 采集间隔内磁盘平均I/O次数该值等于Sheet DISK_SUMM中IO/sec列的平均值
Max disk tps during an interval 采集间隔内磁盘最大I/O次数该值等于Sheet DISK_SUMM中IO/sec列的最大值
Max disk tps interval time 显示磁盘最大I/O所在时间点
Total number of Mbytes read 采集间隔内磁盘读的总兆字节数
Total number of Mbytes written 采集间隔内磁盘写的总兆字节数
Read/Write Ratio 读写比率
User% 采集间隔内所有CPU在User Mode下的Time占比(Avg、Max)
Sys% 采集间隔内所有CPU在System Mode下的Time占比(Avg、Max)
Wait% 采集间隔内所有CPU处于空闲且等待I/O完成的时间比例(Avg、Max)
Idel% 采集间隔内所有CPU处于空闲Time的占比(Avg、Max)
CPU% CPU总体占用情况(Avg、Max)

如果一个CPU被充分使用,CPU占用时间配比应为User%(65-70%),Sys%(30-35%),Idel%(0-5%)
如果Sys%占比过大说明系统进程本身占领大部分cpu资源,可考虑系统是否存在过多僵尸进程或者系统进程存在死循环等原因;
CPU Wait%占比过大说明可能IO或内存方面存在瓶颈,可能是由于内存不够而引起频繁的的数据交换。

2.系统信息:标签页(AAA)

信息主要包括:执行命令,主机CPU数,操作系统内核版本信息,主机名等信息。
AAA
3.系统详细信息:标签页(BBBP)

页面信息主要包括:操作系统版本,主机磁盘信息,主机CPU型号、主频信息,内存信息,网卡信息等。
BBBP
4.CPU使用情况:标签页(CPU_ALL,CPU_SUMM,CPU001,CPU002,CPU003,CPU004…)

包括主机CPU使用情况汇总以及每个CPU的运行情况。
此处重点关注CPU_ALL页面。CPU_ALL页面可以看到如下图的CPU整体上在每个监控点的数据,包括User%、Sys%、Wait%、Idle%、Steal%、CPU%以及CPUs(cpu个数)及对应图表。


CPU-ALL

参数 | 说明
CPU Total| 执行间隔时间列表
User% | 采集间隔内所有CPU在User Mode下的Time占比(Avg、Max)
Sys% | 采集间隔内所有CPU在System Mode下的Time占比(Avg、Max)
Wait%| 采集间隔内所有CPU处于空闲且等待I/O完成的时间比例(Avg、Max)
Idel%|采集间隔内所有CPU处于空闲Time的占比(Avg、Max),此值和User%,Sys%,Wait%,Steal%之和等于1
CPU%| CPU总体占用情况,这个值通常等于User%+Sys%
CPUs | CPU核数,即操作系统是多少核的


CPU-ALL
5.磁盘读写情况汇总:标签页(DISK_SUMM,DISKBSIZE,DISKBUSY,DISKREAD,DISKWRITE,DISKXFER)

磁盘的读、写及I/O统计信息,系统各磁盘分区的读写情况。此处重点关注DISK_SUMM即可。

DISK_SUMM按采集时间显示所有磁盘和分区的Read/Write的速率(KB/s)和所有磁盘和分区的I/O率。
DISKSUMM

参数 | 说明

Disk total KB/s | 执行间隔时间列表
Disk Read KB/s| 采集间隔内磁盘设备的读速率
Disk Write KB/s| 采集间隔内磁盘设备的写速率
IO/sec | 采集间隔内磁盘整体平均每秒IO数


DISKSUMM
6.内存使用情况:标签页(MEM)

系统内存空闲、使用,swap、cached等统计信息。
MEM

参数 | 说明
memtotal | 物理内存总大小,单位MB
swaptotal | 虚拟内存(即交换空间)的总大小
memfree | 剩余物理内存大小
swapfree | 剩余虚拟内存大小
cached | 物理内存中被cache占用的缓存大小
active | 在活跃使用中的内存大小
buffers | 文件系统缓冲区的大小
swapcached | 虚拟内存中被cache占用的缓存大小
inactive | 不常使用的内存大小


memfree 图形统计图
memtotal 图形统计图
7.系统网络情况:标签页(NET,NETPACKET)

反映系统的网络运行情况,系统各个网络适配器读写的数据包数。此处重点关注NET页面。
NET页面显示系统中每个网络适配器的数据传输速率(千字节/秒)。


NET

参数 | 说明
Network I/O | 执行间隔时间列表
Total-Read | 网络适配器每秒接收的数据包总大小(KB/s)
Total-Write(-ve) | 网络适配器每秒发送的数据包总大小(KB/s)


Total-Read、Total-Write (-ve) 图形统计图
8.系统进程:标签页(PROC)

反映系统运行线程及等待切换的线程平均数。

9.采集时间:标签页(ZZZZ)

记录nmon工具采集系统信息的时间点。

你可能感兴趣的:(Nmon简单使用和分析结果介绍)