nmon命令

Linux系统中nmon命令详解

nmon(Nigel's Monitor)是一款轻量级、交互式的系统性能监控工具,以可视化界面聚合展示CPU、内存、磁盘I/O、网络、进程、文件系统等多维度资源状态。其核心优势在于“交互式操作+直观图表展示”,支持实时监控与数据录制回放,操作简单且资源占用极低,既能满足运维人员日常巡检的快速查看需求,也能用于性能测试过程中的实时监控,是Linux系统中兼具易用性与功能性的经典监控工具,适用于各类主流发行版。

一、nmon命令基础准备

1.1 安装与验证

nmon多数Linux发行版未预装,支持包管理器安装与二进制包部署,两种方式均简单便捷:

# 方式一:包管理器安装(推荐,适配系统环境)
# CentOS/RHEL系列
yum install -y nmon

# Ubuntu/Debian系列
apt-get install -y nmon

# 方式二:二进制包安装(适用于无包管理器或版本过旧场景)
# 下载对应系统架构的二进制包(官网:https://nmon.sourceforge.io/)
wget https://downloads.sourceforge.net/project/nmon/nmon16m_x86_64.tar.gz
tar -zxvf nmon16m_x86_64.tar.gz
cd nmon16m_x86_64
# 复制可执行文件到系统路径,便于全局调用
cp nmon /usr/local/bin/
chmod +x /usr/local/bin/nmon

# 验证安装
nmon -V  # 显示版本信息即安装成功,直接输入nmon可启动交互式界面

1.2 基本语法

# 核心语法(交互式/非交互式通用)
nmon [选项参数] [采集间隔秒数] [采集次数]

# 关键说明:
# 1. 无任何参数:直接启动交互式监控界面(默认每2秒刷新一次,支持快捷键操作);
# 2. 采集间隔+次数:非交互式模式,按指定间隔采集数据,共采集次数次,适合脚本录制;
# 3. 选项参数:控制输出格式、数据录制、监控维度等,核心选项聚焦非交互式场景。

1.3 核心选项参数

nmon选项简洁,分为交互式辅助、非交互式录制、格式控制三类,核心选项如下,覆盖日常监控与数据采集场景:

# 一、非交互式数据录制选项(核心)
-f:开启数据录制模式,生成CSV格式日志文件,文件名默认格式为“nmon_主机名_日期_时间.csv”;
-s <秒数>:指定采集间隔(秒),需与-f或非交互式模式配合使用;
-c <次数>:指定采集总次数,与-s配合使用,采集完成后自动退出;
-m <目录路径>:指定录制文件的保存目录,需提前创建目录并确保权限;
-t:在录制文件中添加时间戳,精准对应每一条采集数据;
-o <文件名>:自定义录制文件名称,覆盖默认命名规则,需与-f配合使用。

# 二、交互式辅助选项
-h:显示帮助信息,列出所有选项与快捷键;
-V:显示nmon版本信息;
-d <秒数>:自定义交互式界面的刷新间隔(秒),默认2秒;
-g:开启“大页面”监控,显示内存大页面使用情况。

# 三、格式控制选项
--csv:强制输出CSV格式,与-f配合使用,确保文件可直接导入表格工具;
--no-sysinfo:禁用系统信息显示(如主机名、系统版本),精简输出;
--verbose:开启详细模式,显示更多监控细节(适用于问题排查)。

二、nmon交互式界面操作与解读

nmon的核心优势在于交互式界面,启动后通过快捷键可灵活切换监控维度、显示/隐藏图表,界面分为“系统概览区”与“详情监控区”,彩色图表直观展示资源变化趋势,以下分步骤解读操作与界面指标。

2.1 启动与基础界面

nmon  # 直接启动交互式界面

启动后默认显示系统概览界面,包含CPU、内存、磁盘、网络四大核心维度的实时数据,顶部为系统信息栏(主机名、系统版本、当前时间、刷新间隔),中间为数值数据区,底部为图表展示区,不同维度数据用不同颜色区分,便于快速识别。

2.2 核心快捷键操作

交互式界面通过单字母快捷键切换监控维度,无需输入命令,操作便捷,核心快捷键如下,按监控维度分类:

  • CPU相关
    • c:显示/隐藏CPU详细信息(使用率、核心分布、负载),默认显示;
    • C:切换CPU图表显示模式(柱状图/折线图),直观观察CPU负载变化趋势;
    • l:显示系统平均负载(1分钟、5分钟、15分钟),联动CPU监控。
  • 内存相关
    • m:显示/隐藏内存详细信息(物理内存、Swap、缓冲区、缓存),与free、sar指标一致;
    • M:切换内存图表显示模式,聚焦内存使用率变化;
    • k:显示/隐藏内存页面交换信息(换入、换出速率),对应vmstat的si、so指标。
  • 磁盘I/O相关
    • d:显示/隐藏磁盘I/O详细信息(单磁盘读写速率、繁忙率),对应iostat指标;
    • D:切换磁盘图表显示模式,支持按磁盘设备单独查看;
    • v:显示/隐藏文件系统信息(各挂载点空间使用情况),对应df命令指标。
  • 网络相关
    • n:显示/隐藏网络详细信息(网卡收发速率、包数),对应sar -n DEV指标;
    • N:切换网络图表显示模式,支持按网卡单独监控;
    • p:显示/隐藏进程详细信息(进程ID、CPU/内存占用率),对应top命令核心指标。
  • 界面控制相关
    • h:显示快捷键帮助菜单,快速查阅所有操作;
    • q:退出nmon交互式界面(唯一退出方式);
    • r:重置所有监控数据,重新开始统计;
    • t:切换时间显示格式(24小时制/12小时制)。

2.3 核心界面指标解读

nmon界面指标与top、iostat、free等工具逻辑一致,确保运维人员无需重新适应,核心维度指标解读如下:

2.3.1 CPU监控界面(快捷键c)

显示总CPU使用率(usr、sys、idl、wai)与单个CPU核心使用率,图表区用柱状图展示各核心负载变化,核心指标与top一致:

  • usr:用户空间CPU使用率;sys:内核空间CPU使用率;
  • idl:CPU空闲率;wai:CPU等待磁盘I/O的时间占比(持续高于5%说明I/O瓶颈);
  • hiq/loq:高/低优先级中断占用率,通常为0。

2.3.2 内存监控界面(快捷键m)

展示物理内存、Swap、缓冲区、缓存的使用情况,数值与图表结合,直观反映内存压力:

  • PhysMem:物理内存(Used/Free/Buff/Cache),与free命令完全对应;
  • Swap:交换分区(Used/Free),Swap Used持续增长说明物理内存不足;
  • 图表区:实时展示内存使用率变化趋势,红色表示已用,绿色表示空闲。

2.3.3 磁盘I/O监控界面(快捷键d)

按磁盘设备展示读写速率、繁忙率,支持切换单磁盘查看,指标与iostat互补:

  • Disk Busy:磁盘繁忙率(核心指标,持续高于80%说明磁盘I/O压力大);
  • Read/Writ:磁盘每秒读写速率,单位自动适配(KB/MB);
  • IO/sec:每秒I/O请求数,对应iostat的tps指标。

2.3.4 网络监控界面(快捷键n)

按网卡展示收发速率、数据包数,快速排查带宽占用与网络异常:

  • Recv/Send:网卡每秒接收/发送数据量,单位自动适配;
  • Packets/s:每秒接收/发送数据包数,异常增高可能是小包攻击;
  • Err/Coll:每秒错误/冲突数据包数,大于0说明网络链路或网卡存在问题。

三、nmon命令实战场景示例

3.1 交互式日常巡检(推荐)

nmon -d 1  # 启动交互式界面,设置刷新间隔为1秒
# 操作流程:启动后按c、m、d、n快捷键显示全维度数据,通过C、M、D、N切换图表模式
# 适用场景:日常巡检、实时排查系统瓶颈,快速定位CPU/内存/I/O/网络异常

3.2 非交互式数据录制(历史复盘)

# 每5秒采集一次数据,共采集60次(持续5分钟),保存到/data/nmon目录,自定义文件名并添加时间戳
nmon -f -s 5 -c 60 -m /data/nmon -o system_perf -t
# 说明:生成的CSV文件可导入Excel、WPS等表格工具,具体操作如下:
# 1. 找到录制文件:进入/data/nmon目录,文件名为“system_perf_主机名_日期_时间.csv”(因-o和-t选项组合生成);
# 2. 导入Excel:打开Excel,点击“数据”选项卡→“自文本/CSV”,选择对应文件,编码默认UTF-8,分隔符选择逗号(CSV默认分隔符),点击导入;
# 3. 数据展示:导入后Excel会按列展示各监控维度数据,包括时间戳、CPU使用率、内存占用、磁盘I/O、网络速率等,每一行对应一次采集结果;
# 4. 数据优化:可对列进行重命名(如将“usr”改为“用户态CPU使用率”),通过Excel图表功能(折线图、柱状图)生成性能趋势图,便于直观分析波动情况。
# 适用场景:性能测试复盘、历史异常溯源,可通过Excel筛选、排序功能定位特定时间段的性能瓶颈。

3.3 聚焦CPU与内存监控(专项排查)

nmon -d 1 -g  # 启动交互式界面,1秒刷新,开启大页面监控
# 操作流程:按c、m、k快捷键,聚焦CPU、内存、页交换数据,排查内存泄漏或CPU高负载问题
# 适用场景:应用程序内存占用异常、CPU使用率居高不下的专项排查

3.4 长时间后台录制(无人值守监控)

# 后台运行,每10秒采集一次,无限采集(需手动终止),保存到指定目录
nohup nmon -f -s 10 -m /data/nmon --csv &
# 说明:通过nohup实现后台运行,避免终端关闭导致采集中断,日志文件可随时停止采集后分析
# 终止采集:通过ps aux | grep nmon 找到进程ID,执行kill -9 进程ID 终止

3.5 精简模式监控(低负载系统)

nmon --no-sysinfo -d 3  # 禁用系统信息显示,3秒刷新,精简界面
# 适用场景:资源紧张的边缘节点或低配置服务器,减少nmon自身资源占用

四、关键误区与注意事项

  1. 误区:交互式界面支持数据回放 nmon交互式界面仅支持实时监控,无历史数据回放功能,需通过-f选项录制CSV文件,后续借助表格工具分析历史趋势,避免误以为界面可回溯过往数据。
  2. 录制文件的权限与空间问题 录制文件保存目录需确保nmon有写入权限(建议提前创建并授权755);长时间采集会生成大容量CSV文件,需预估磁盘空间,避免占满磁盘(如每10秒采集一次,一天约生成8640条数据,文件大小约1-2MB)。
  3. 快捷键大小写区分 nmon快捷键严格区分大小写,小写快捷键用于“显示/隐藏”对应维度,大写快捷键用于“切换图表模式”,避免误按导致界面异常(如按C而非c,无法显示CPU详情)。
  4. 非交互式模式的参数依赖 -s(间隔)与-c(次数)必须配合使用,单独使用会报错;-o(自定义文件名)需与-f(录制模式)配合,否则无法生效,需注意参数组合规则。
  5. 版本差异导致的功能差异 低版本nmon(<16版本)可能不支持--csv、--no-sysinfo等选项,部分快捷键功能也可能不同,建议升级到最新版本(通过官网下载二进制包或更新包管理器版本)。
  6. 交互式界面的退出方式 nmon交互式界面仅支持快捷键q退出,无法通过Ctrl+C终止,避免误操作导致界面卡死(若卡死,可通过另一个终端执行kill命令终止进程)。
  7. 资源占用的合理控制 刷新间隔过短(如0.5秒)会增加nmon自身CPU占用,高负载系统建议将间隔设为1-3秒;后台长时间采集时,优先选择非交互式模式,比交互式模式更节省资源。

五、补充说明

nmon的核心价值在于“轻量交互式可视化”,适合运维人员快速上手,尤其适合现场排查问题时的实时监控,无需记忆复杂命令与指标换算。其录制功能可与表格工具联动,实现性能趋势分析,弥补了传统交互式工具无历史数据的短板。若需更精细化的专项监控(如TCP协议状态、进程级I/O),可配合sar、iotop、ss等工具,形成“直观监控+专项深挖”的完整排查体系。此外,nmon支持AIX、Solaris等非Linux系统,跨平台性强,适合多系统运维场景统一工具使用习惯。

posted @ 2026-01-27 09:27  向闲而过  阅读(2)  评论(0)    收藏  举报