1. 安装nmon
nmon官网
1.1. 下载 nmon 监控工具
- 三种安装方法,选择其一即可
方法一:yum安装(推荐)
yum install nmon
方法二:官网下载二进制包(解压直接使用,但需要系统找到对应的版本)
- 官网列出了不同版本,选择合适的即可(我是x86,所以选择的第一个)
- 将包放入 Linux 下解压
- 根据系统使用合适的文件,我的是 X86_CentOS7,所以将 nmon_x86_64_centos7 修改为 nmon(方便记忆,后续使用懒得去找)
- 注意:执行需要使用相对路径,或者绝对路径。若是想直接执行,移动到 /bin/ 下即可
方法三:官网下载源码包(使用gcc编译,不需要找对应系统)
x86:
gcc -o nmon_x86 lmon.c -g -O3 -Wall -lncurses -lm -D KERNEL_2_6_18 -D X86 -D RHEL7
arm:
gcc -o nmon_arm lmon.c -g -O3 -Wall -D JFS -D GETUSER -D LARGEMEM -lncurses -lm -D ARM
- 选择左上源码包超链接
- 下载第一个c文件即可
- 将 lmon16n.c 修改为 lmon.c 后,再使用 gcc 编译
gcc -o nmon_x86 lmon.c -g -O3 -Wall -lncurses -lm -D KERNEL_2_6_18 -D X86 -D RHEL7
nmon_x86:表示编译后的文件名
lmon.c :表示源码包
- 编译失败,可能缺少依赖库
使用yum安装依赖库
yum install ncurses-devel
yum install ncurses-libs
- 重新编译(成功)
gcc -o nmon_x86 lmon.c -g -O3 -Wall -lncurses -lm -D KERNEL_2_6_18 -D X86 -D RHEL7
注意:执行需要使用相对路径,或者绝对路径。若是想直接执行,移动到 /bin/ 下即可
1.2. 下载 nmon 分析工具
- 点击左上角 nmon-Analyser 超链接
- 下载第一个即可
- 这个文件用于 windows ,将nmon文件转换为折线图。下载后直接解压会得到一个 xlsm 文件(nmon analyser v69_2.xlsm) ,使用 Excel 打开即可使用
- Analyze nmon data 便是启动按钮,转换对应的 nmon 文件即可
- 点击按钮后无法使用
点击启动宏即可
再次尝试(成功)
2. nmon监控
2.1. 实时监控
nmon
交互命令:
h:帮助
q:退出
c:监控CPU利用率
m:监控内存使用情况
d:监控磁盘使用率
V:监控虚拟内存
n:监控网络
k:监控内核
r:显示操作系统信息
.:只显示忙碌的 disk/proc(top方式有效)
N:监控虚拟文件系统
j:监控文件系统
l:监控CPU利用率(折线图)
C:监控CPU利用率(宽视图)
U:监控CPU利用率(详细信息)
-:减少刷新时间间隔
+:增加刷新时间间隔
top方式(t 开启/关闭top模式)
1:按运行状态显示进程
3:按cpu使用率显示进程
4:按大小显示进程
① 监控CPU
交互命令:c
CPU :显示单个cup状态
Avg :显示每个cpu平均状态,也就是cpu的总利用率
User%:用户空间占用的cpu
Sys% :内核空间占用的cpu
Wait%:cpu 等待 IO 的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)
Idle :空闲的cpu
视图说明:
左边部分按百分比显示
右边部分按折线图方式显示,0-100分别表示cpu利用率(u代表User,s代表Sys,w代表Wait)。可以根据颜色去看
② 监控内存
交互命令:m
PageSize :页面大小
RAM-Memory :物理内存
Swap-Space :交换分区内存
High-Memory :高内存
Low-Memory :低内存
Total :总内存
Free :剩余内存
Free Percent:剩余内存占比
Cached :缓存的内存
Buffers :缓冲区内存
Active :活跃的的内存
Inactive :不活跃的内存
Swapcached :交换分区的缓存
Dirty :脏数据
Writeback :回写内存
Mapped :映射内存
③ 监控磁盘
交互命令:d t
上部分显示磁盘使用情况(Write 后面为KB,表示单位为KB)
DiskName:磁盘名
Busy :磁盘使用率
Read :每秒读数据
Write :每秒写数据
下部分显示进程的详细情况
%CPU :cpu使用率
Size :页面大小
Res Set :进程的实内存数据与实内存文本大小的和
Res Text:进程的实内存文本大小
Res Data:进程的实内存数据大小
Shared :共享内存
Command :进程名称
④ 监控网络
交互命令:n
Name :磁盘块
Recv :每秒接收的数据
Trans :每秒传输的数据
packin :每秒接收到的包数
packout :每秒发送的包数
insize :每秒收到的包的平均大小
outsize :上一时间间隔内发送的包平均大小
Peak->Recv:每秒接收的数据的峰值
Trans :每秒发送的数据的峰值
注意:
这里说的每秒是指刷新时间必须为1秒
如果刷新时间为2秒,那么上述的值按每2秒计算
⑤ 监控文件系统
交互命令:j
Filesystem:系统文件
SizeMB :文件系统总大小(单位:MB)
FreeMB :剩余文件系统大小(单位:MB)
Use% :文件系统使用占比
Type :文件类型
MountPoint:挂载点
2.2. 后台监控
常用参数
-f:关闭交互模式, 将数据保存到本地目录中的CSV电子表格格式的.nmon文件
-s:指定间隔时间(单位:秒)
-c:指定收集次数
-F:指定保存的文件名
-p:指定监控某个PID
-t:统计包含top进程
-T:在输出中包括最繁忙的进程(保存为UARG部分)
指定文件名:收集5分钟数据,每次间隔一秒
nmon -f -c 300 -s 1 -F nmon_file/test.nmon # 文件必须以 .nmon 为后缀
不指定文件名:生成到当前路径下,以主机名和时间命名
nmon -f -c 10 -s 1
3. 图形报表解读
打开图形报表步骤
- 打开 nmon analyser v69_2.xlsm 文件
- 点击 Analyze nmon data 按钮
- 选择后台监控的文件,见目录 2.2
- 保存文件
sheet说明
SYS_SUMM :展示cpu和IO、开始时间、结束时间
AAA :展示操作系统信息
BBBP :命令的输出信息
DISK_SUMM:展示每秒磁盘读写和总读写大小
CPU_ALL :展示cpu总体使用情况
CPU_SUMM :展示cpu单个使用情况
DISKBSIZE:展示磁盘的传输块大小
DISKBUSY :展示磁盘使用率
DISKREAD :展示磁盘读
DISKWRITE:展示磁盘写
DISKXFER :展示每秒IO
JFSFILE :展示文件系统的使用占比
MEM :展示剩余内存
NET :展示网络的传输速率
NETPACKET:统计每个适配器网络读写包数量
PROC :展示nmon内核内部的统计信息
VM :分页和虚拟内存、文件备份分页(kbyes/sec)、交换支持的活动(kbyes/sec)
ZZZZ :展示nmon统计的时间戳
CPU001 :展示单个cpu使用情况。001表示cpu0,002表示cpu1...
3.1. SYS_SUMM 展示cpu、IO
Samples:收集时间(单位:秒)
First :开始时间
Last :结束时间
User% :用户空间占用的cpu
Sys% :内核空间占用的cpu
Wait% :cpu等待IO的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)
Idle% :空闲的cpu
CPU% :cpu总体占比
Avg disk tps during an interval :tps平均值
Max disk tps during an interval :tps最大值
Max disk tps interval time :最大tps的时间戳
Total number of GBs read :磁盘读取的总数(GBs表示单位为GB)
Total number of GBs written :磁盘写入的总数(GBs表示单位为GB)
Read/Write Ratio :读/写比率
- 按时间显示CPU使用率和每秒传输次数(I/O)
- CPU使用率见左轴
- 每秒传输次数见右轴
3.2. CPU_ALL 展示cpu总体使用情况
User% :用户空间占用的cpu
Sys% :内核空间占用的cpu
Wait% :cpu等待IO的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)
Idle% :空闲的cpu
CPUs :cpu进程核心数
CPU% :cpu总体占比
- 按时间显示每个CPU详细使用情况
3.3. CPU_SUMM 展示cpu单个使用情况
CPU_SUMM:cpu列表
User% :用户空间占用的cpu
Sys% :内核空间占用的cpu
Wait% :cpu等待IO的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)
Idle% :空闲的cpu
- 显示单个CPU整体使用情况
3.4. DISK_SUMM 展示每秒磁盘读写和总读写大小
Disk Read KB/s :磁盘每秒读
Disk Write KB/s :磁盘每秒写
IO/sec :磁盘每秒传输次数(I/O)
- 按时间显示磁盘读写情况
- 标题存有 KB/s 字样,但左轴有 “千” 字样,说明单位为 MB/s
- 每秒磁盘读写见左轴
- 每秒 I/O 次数见右轴
3.5. DISKBSIZE 展示磁盘的传输块大小
- 显示每个磁盘最大、最小、平均值的传输块大小
- 按时间段显示传输块大小
3.6. DISKBUSY 展示磁盘使用率
- 显示监控时间内 每个磁盘最大、最小、平均使用率
- 按时间显示磁盘使用率
3.7. DISKREAD 展示磁盘读
- 按时间显示磁盘读
- 标题处显示单位KB/s, 但左边有一个“千”字,表示一千KB,也就是MB
3.8. DISKWRITE 展示磁盘写
- 按时间显示磁盘读
- 标题处显示单位KB/s, 但左边有一个“千”字,表示一千KB,也就是MB
3.9. DISKXFER 展示每秒IO
- 按时间显示磁盘I/O
- 标题左边有一个“千”字,表示左轴的值乘以1000
3.10. JFSFILE 展示文件系统的使用占比
- 显示监控时间内 每个文件系统最大、最小、平均使用率
3.11. MEM 展示剩余内存
memtotal :物理内存总大小
swaptotal :交换分区总大小
memfree :剩余物理内存大小
swapfree :剩余交换分区内存大小
cached :已占用的文件系统缓存大小
buffers :文件系统缓冲区大小
swapcached:交换分区调用的内存大小
inactive :最近不常使用的内存
- 按时间显示内存剩余情况
- 标题有“MB”字样,说明单位为:MB
- 显示总内存大小,单位与上图一致
3.12. NET 展示网络的传输速率
- Total-Read :每秒接收的数据包大小
- Total-Write (-ve):每秒发送的数据包大小
3.13. NETPACKET 统计每个适配器网络读写包数量
- 显示每个网络适配器读写包的数量
版权归原作者 〖羊头〗➫ lsy 所有, 如有侵权,请联系我们删除。