nmon(为Nigel's performance Monitor的简写) for linux工具是 IBM 开源的在POWER, x86, x86_64, Mainframe & now ARM (Raspberry Pi)与各种Linux操作系统上广泛使用的监控与分析工具。该工具可将服务器的系统资源耗用情况收集起来并输出一个特定的文件,并可利用 excel 分析工具nmon Analyser进行数据的统计分析并生成图形化结果。并且,nmon运行不会占用过多的系统资源,通常情况下CPU利用率不会超过2%。针对不同的操作系统版本,nmon有相应版本的程序。
nmon所记录的数据包含以下一些方面:
-
cpu占用率
-
内存使用情况
-
内核统计和运行队列
-
磁盘I/O速度、传输和读写比率
-
文件系统的使用率
-
磁盘适配器
-
网络I/O速度、传输和读写比率、错误统计率与传输包的大小
-
页面空间和页面I/O速度
-
计算机详细信息和资源
-
消耗资源最多的进程
-
用户自定义的磁盘组
-
另外在AIX操作系统上,nmon还能监控到其他的一些信息,如异步I/O、负载管理、ESS和其他磁盘子系统等。
使用nmon
-
下载对应版本的nmon版本后先赋权chmod a+x / 755 nmon
-
运行nmon进行服务器监控,如nmon -f -s 2 -c 30
-f:按标准格式输出文件名称:<hostname>_YYYYMMDD_HHMM.nmon
-s:每隔n秒抽样一次,这里为2秒
-c:取出多少个抽样数量,这里为30,即监控=30*2/60=1分钟
生成报表
把之前生成的 nmon 数据文件传到 Windows 机器上,用 Excel 打开分析工具如nmon analyser v34a.xls。
nmon分析文件常用sheet含义
sheet名 |
含义 |
CPUnn |
显示执行之间内CPU占用情况,其中包含user%、sys%、wait%和idle% |
CPU_ALL |
所有CPU概述,显示所有CPU平均占用情况,其中包含SMT状态 |
CPU_SUMM |
每一个CPU在执行时间内的占用情况,其中包含user%、sys%、wait%和idle% |
MEM |
本sheet主图上显示空闲实存的数量 |
nmon分析文件常用指标列表
常用指标类型 |
常用指标名 |
常用指标含义 |
CPU_ALL |
User% |
显示在用户模式下执行的程序所使用的 CPU 百分比 |
Sys% |
显示在内核模式下执行的程序所使用的 CPU 百分比 |
|
Wait% |
显示等待 IO 所花的时间百分比 |
|
Idle% |
显示 CPU 的空闲时间百分比 |
|
CPU% |
CPU总体占用情况 |
|
MEM |
MemoryHostname |
执行间隔时间列表 |
Real Free % |
实际剩余内存百分比 |
|
Virtual free % |
虚拟剩余内存百分比 |
|
Real free(MB) |
实际剩余内存大小(MB) |
|
Virtual free(MB) |
虚拟剩余内存大小(MB) |
|
Real total(MB) |
实际内存总体大小(MB) |
|
Virtual total(MB) |
虚拟内存总体大小(MB) |