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

2023-11-06

目录

1. 安装nmon

1.1. 下载 nmon 监控工具

1.2. 下载 nmon 分析工具

2. nmon监控

2.1. 实时监控

① 监控CPU

② 监控内存

③ 监控磁盘

④ 监控网络

⑤ 监控文件系统

2.2. 后台监控

3. 图形报表解读

3.1. SYS_SUMM 展示cpu、IO

3.2. CPU_ALL 展示cpu总体使用情况

3.3. CPU_SUMM 展示cpu单个使用情况

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

3.5. DISKBSIZE 展示磁盘的传输块大小

3.6. DISKBUSY 展示磁盘使用率

3.7. DISKREAD 展示磁盘读

3.8. DISKWRITE 展示磁盘写

3.9. DISKXFER 展示每秒IO

3.10. JFSFILE 展示文件系统的使用占比

3.11. MEM 展示剩余内存

3.12. NET 展示网络的传输速率

3.13. NETPACKET 统计每个适配器网络读写包数量


1. 安装nmon

nmon官网

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

 

1.1. 下载 nmon 监控工具

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

 

方法一:yum安装(推荐)

yum install nmon

 

 

 

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

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

  

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

 

2. 将包放入 Linux 下解压

 

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

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

 

 

方法三:官网下载源码包(使用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. 选择左上源码包超链接

 

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

 

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.  编译失败,可能缺少依赖库

使用yum安装依赖库
yum install ncurses-devel
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

 注意:执行需要使用相对路径,或者绝对路径。若是想直接执行,移动到 /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 打开即可使用

  • Analyze nmon data 便是启动按钮,转换对应的 nmon 文件即可 

 

4. 点击按钮后无法使用

点击启动宏即可

再次尝试(成功)

 

 

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. 图形报表解读

打开图形报表步骤

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

  •  按时间显示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 统计每个适配器网络读写包数量

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux性能监控命令_nmon 安装与使用 的相关文章

随机推荐

  • javascript 继承(extend)

  • 无法连接服务器ORacle数据库(可以Ping通)

    今天遇到一个怪事 我本机当服务器 开启了oracle的服务 发现其他人无法连接我的数据库 但是能ping通 1 检查端口是否能连接上 测试机 cmd gt telnet 10 0 0 163 1521 提示没有telnet这个命令 解决方法
  • 折半查找(二分查找)

    1 int Binary Search SeqList L int key 在有序表L中查找关键字为key的元素 若存在则返回其位置 不存在则返回 1 int low 0 high L Tablelen 1 mid while low lt
  • postgresql常用命令

    连接数据库 默认的用户和数据库是postgres psql U user d dbname 切换数据库 相当于mysql的use dbname c dbname 列举数据库 相当于mysql的show databases l 列举表 相当于
  • 三、PowerShell-使用帮助系统

    三 PowerShell 使用帮助系统 文章目录 三 PowerShell 使用帮助系统 1 帮助系统使用场景 2 更新帮助系统 3 查看帮助 4 使用帮助系统查找命令 5 帮助详解 1 参数集和通用参数 2 可选和必选参数 3 位置参数
  • springboot集成logback配置文件,配置日志

    目录 logback简介 为什么使用logback 开始使用 1 导入依赖 2 在项目的resources目录下新建一个logback xml文件 3 填入配置 4 项目启动 logback简介 Logback是由log4j创始人设计的又一
  • 人生中第一次向开源项目提交PR记录

    git了解很久了 但是就是没有向大一点的项目提交过pr 都是自己瞎折腾 记录一下开源项目提交PR过程 省略的过程可以参考 https www runoob com git git tutorial html 这个里面包括安装 使用 介绍基本
  • Java常见面试题

    Java面试题 java基础 spring springMVC mybatis mybatisplus springboot springcloudAlibaba redis mongodb mysql rabbitmq kafka doc
  • Java循环依赖使用@Lazy(懒惰的)注解解决

    Lazy Autowired private TaskService taskService Lazy 懒加载注解的概念 SpringIoC容器会在启动的时候实例化所有单实例 bean 如果我们想要实现 Spring 在启动的时候延迟加载
  • vue2转vue3笔记

    定义 vue3中不再使用data函数 而是采用ref reactive来定义响应式的数据 ref用来存放基本数据 reactive用来存放复杂的数据 注意这两种参数的值都不能直接使用 而是使用xxx value才能对其进行复制 而且reac
  • yaml配置对象map

    yaml配置如下 objectConfig object map 1 name 对象一 desc 这是第一个对象 url https abc abc abc 2 name 对象二 desc 这是第二个对象 url https abc abc
  • 基于沙猫群优化算法的函数寻优算法

    文章目录 一 理论基础 1 沙猫群优化算法 1 初始化种群 2 搜索猎物 探索 3 攻击猎物 开发 4 探索和开发 2 SCSO算法伪代码 二 仿真实验与结果分析 三 参考文献 一 理论基础 1 沙猫群优化算法 文献 1 提出了一种新的元启
  • 【Apifox】国产测试工具雄起

    在开发过程中 我们总是避免不了进行接口的测试 而相比手动敲测试代码 使用测试工具进行测试更为便捷 高效 今天发现了一个非常好用的接口测试工具Apifox 相比于Postman 他还拥有一个非常nb的功能 在接口的测试完成后 它可以一键生成接
  • Scripting.FileSystemObject控件的用法

    文件系统对象FSO的英文全称是File System Object 这种对象模型提出了有别于传统的文件操作语句处理文件和文件夹的方法 通过采用object method这种在面向对象编程中广泛使用的语法 将一系列操作文件和文件夹的动作通过调
  • Cadence orcad 原理图导出带书签目录的办法

    Cadence orcad 导出pdf 方便软件工程师或者其他人员查看 但是Cadence自带的导出pdf的办法不能同时导出书签目录 不利于查看 这片文章就是介绍怎么使用Cadence orcad 原理图导出带书签目录的pdf 这里以cad
  • 使用umr读取AMDGPU VRAM

    使用umr读取AMDGPU VRAM 造case 使用UMR读取内存 使用devmem2验证读取 huge page 造case gdb args kfdtest GNU gdb Ubuntu 9 2 0ubuntu1 20 04 1 9
  • 自动发送邮件(第一次做勿喷)

    import smtplib from email message import EmailMessage email EmailMessage Creating a object for EmailMessage email from x
  • 考ACM需要的知识(转)

    转自 http www ithao123 com topic 10002 html 对ACM竞赛的算法大概分了一下类 分成了数学 数据结构和算法三大块 对ACM竞赛的算法大概分了一下类 分成了数学 数据结构和算法三大块 一 数学 Mathe
  • 在机器学习里,什么是凸样本集和非凸样本集?

    如果一个数据集D是凸的 那么对于其中任意的两点x y D R 0 1 则 x 1 y D表达式 x 1 y被称作点x y 的 凸性组合 convex combination 简单来说 数据集D中任意两点的连线上的点 也会在数据集D内 那么数
  • Linux性能监控命令_nmon 安装与使用

    目录 1 安装nmon 1 1 下载 nmon 监控工具 1 2 下载 nmon 分析工具 2 nmon监控 2 1 实时监控 监控CPU 监控内存 监控磁盘 监控网络 监控文件系统 2 2 后台监控 3 图形报表解读 3 1 SYS SU