Linux性能监控命令_nmon 安装与使用

转载:Linux性能监控命令_nmon 安装与使用_nmon安装方法linux_〖羊头〗➫ lsy的博客-CSDN博客

目录


1. 安装nmon

nmon官网

http://nmon.sourceforge.net/pmwiki.php?n=Site.Download 

1.1. 下载 nmon 监控工具

  • 三种安装方法,选择其一即可

方法一:yum安装(推荐)

yum install nmon

Linux性能监控命令_nmon 安装与使用_第1张图片

方法二:官网下载二进制包(解压直接使用,但需要系统找到对应的版本)

http://nmon.sourceforge.net/pmwiki.php?n=Site.Download 

  1. 官网列出了不同版本,选择合适的即可(我是x86,所以选择的第一个) 

Linux性能监控命令_nmon 安装与使用_第2张图片

2. 将包放入 Linux 下解压

3. 根据系统使用合适的文件,我的是 X86_CentOS7,所以将 nmon_x86_64_centos7 修改为 nmon(方便记忆,后续使用懒得去找)

注意:执行需要使用相对路径,或者绝对路径。若是想直接执行,移动到 /bin/ 下即可
 

方法三:官网下载源码包(使用gcc编译,不需要找对应系统)

方法三:官网下载源码包(使用gcc编译,不需要找对应系统)

http://nmon.sourceforge.net/pmwiki.php?n=Site.Download 

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

1. 选择左上源码包超链接

Linux性能监控命令_nmon 安装与使用_第3张图片

2. 下载第一个c文件即可

Linux性能监控命令_nmon 安装与使用_第4张图片

3. 将 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  :表示源码包

4.  编译失败,可能缺少依赖库

  1. 使用yum安装依赖库

  2. yum install ncurses-devel

  3. yum install ncurses-libs

5. 重新编译(成功)

gcc -o nmon_x86 lmon.c -g -O3 -Wall -lncurses -lm -D KERNEL_2_6_18 -D X86 -D RHEL7

Linux性能监控命令_nmon 安装与使用_第5张图片

 注意:执行需要使用相对路径,或者绝对路径。若是想直接执行,移动到 /bin/ 下即可

 

1.2. 下载 nmon 分析工具

http://nmon.sourceforge.net/pmwiki.php?n=Site.Download 

1. 点击左上角 nmon-Analyser 超链接

2. 下载第一个即可

3. 这个文件用于 windows ,将nmon文件转换为折线图。下载后直接解压会得到一个 xlsm 文件(nmon analyser v69_2.xlsm) ,使用 Excel 打开即可使用

Linux性能监控命令_nmon 安装与使用_第6张图片

Analyze nmon data 便是启动按钮,转换对应的 nmon 文件即可 
4. 点击按钮后无法使用

Linux性能监控命令_nmon 安装与使用_第7张图片

点击启动宏即可

Linux性能监控命令_nmon 安装与使用_第8张图片

再次尝试(成功)

 Linux性能监控命令_nmon 安装与使用_第9张图片

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

Linux性能监控命令_nmon 安装与使用_第10张图片
交互命令: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)。可以根据颜色去看

② 监控内存

Linux性能监控命令_nmon 安装与使用_第11张图片


交互命令: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 为后缀

Linux性能监控命令_nmon 安装与使用_第12张图片

不指定文件名:生成到当前路径下,以主机名和时间命名 

nmon -f -c 10 -s 1
 

 Linux性能监控命令_nmon 安装与使用_第13张图片

3. 图形报表解读

打开图形报表步骤

  1. 打开 nmon analyser v69_2.xlsm 文件
  2. 点击 Analyze nmon data 按钮
  3. 选择后台监控的文件,见目录 2.2
  4. 保存文件

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                :读/写比率

Linux性能监控命令_nmon 安装与使用_第14张图片

  •  按时间显示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

Linux性能监控命令_nmon 安装与使用_第15张图片

  • 显示单个CPU整体使用情况

3.4. DISK_SUMM 展示每秒磁盘读写和总读写大小

  1. Disk Read KB/s :磁盘每秒读

  2. Disk Write KB/s :磁盘每秒写

  3. 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 统计每个适配器网络读写包数量

  •   显示每个网络适配器读写包的数量

你可能感兴趣的:(linux)