Linux性能监控神器:深入nmon详解与使用
nmon
是一款在 Linux 系统上广泛使用的性能监控工具,由 IBM 开发。它提供了对系统资源的实时监控,包括 CPU、内存、网络、磁盘 I/O 等。nmon
的优势在于它能够以直观的文本界面显示系统性能数据,并支持生成性能数据的日志文件,供后续分析使用。
安装 nmon
-
Debian/Ubuntu
sudo apt-get install nmon
-
RHEL/CentOS
sudo yum install nmon
启动 nmon
启动 nmon
非常简单,只需在终端输入以下命令:
nmon
启动后,nmon
将显示一个界面,提供多种性能监控选项。可以使用键盘按键选择你想要监控的系统资源。
1. 交互模式
nmon
使用键盘快捷键来切换和查看不同的系统性能指标。以下是常用的按键和其功能:
c
- 查看 CPU 使用情况,显示每个 CPU 核心的使用率。m
- 查看 内存 使用情况,包括物理内存、虚拟内存和交换区的使用率。d
- 查看 磁盘 I/O 情况,包括读写速率和每个磁盘设备的 I/O 使用情况。n
- 查看 网络 统计数据,显示网络接口的传入和传出流量。k
- 查看 内核 相关信息,如上下文切换、进程切换等。t
- 查看 Top 进程 列表,类似于top
命令,显示当前最耗资源的进程。v
- 查看 虚拟内存 使用情况。r
- 查看 资源 使用情况,包括 CPU 负载平均值、进程统计等。q
- 退出nmon
。
生成性能日志文件
如果需要记录系统性能数据以供后续分析,可以使用 nmon
的日志功能。执行以下命令启动 nmon
并生成日志文件:
nmon -f -s <interval> -c <count>
- -f: 启用日志文件输出,默认生成以日期和主机名命名的
.nmon
文件。 - -s : 设置采样时间间隔,以秒为单位。
- -c : 设置采样次数。
例如,以下命令每 10 秒记录一次性能数据,总共记录 100 次:
nmon -f -s 10 -c 100
分析日志文件
生成的 .nmon
日志文件可以使用 nmon_analyser
等工具进行分析。nmon_analyser
是一个 Excel 插件,可以将 .nmon
日志数据转换为图形报表。
nmon_analyser工具下载
常见使用示例
-
实时监控 CPU 和内存:
启动nmon
后,按c
和m
键分别查看 CPU 和内存的使用情况。 -
监控网络和磁盘 I/O:
启动nmon
后,按n
和d
键分别查看网络接口流量和磁盘 I/O 活动。 -
记录系统性能数据:
使用nmon -f -s 5 -c 120
命令每 5 秒记录一次数据,持续 10 分钟。
交互模式 是 nmon
的默认模式,也是最常用的模式。在这个模式下,nmon
直接在终端显示系统性能信息,并允许用户通过键盘输入来选择要监控的资源。
2. 数据收集模式(批处理模式)
数据收集模式 是 nmon
的一种非交互模式,用于将系统性能数据记录到一个文件中,便于后续分析。
使用方法:
nmon -f -s <interval> -c <count>
-f
:启用日志文件输出。默认生成一个以日期和主机名命名的.nmon
文件。-s <interval>
:设置采样时间间隔(秒)。-c <count>
:设置采样次数。
示例:
nmon -f -s 10 -c 60
这将每 10 秒采样一次,总共采样 60 次,并将数据保存到一个 .nmon
文件中。
场景:
适用于需要长时间监控并记录系统性能数据,以便后续通过工具(如 nmon_analyser
)进行分析的情况。
3. 守护进程模式
守护进程模式 允许 nmon
在后台运行,同时持续监控系统性能,并将数据保存到文件中。
使用方法:
nmon -f -s <interval> -c <count> &
&
:将nmon
进程放入后台运行。
示例:
nmon -f -s 30 -c 2880 &
这将 nmon
放入后台,每 30 秒采样一次,采样 2880 次(24 小时)。
场景:
适用于不希望 nmon
占用前台终端,但仍希望它持续监控系统的情况。
4. 配置文件模式
配置文件模式 允许用户预先定义需要监控的系统资源,并以此配置文件为依据启动 nmon
。这使得批量监控不同系统时更加灵活和自动化。
使用方法:
首先,创建一个配置文件(如 nmon_config.txt
),内容包括所需监控的资源(如 c
, m
, d
, n
),然后启动 nmon
:
nmon -f -s <interval> -c <count> -C <config_file>
-C <config_file>
:指定配置文件路径。
示例:
假设 nmon_config.txt
文件内容如下:
c
m
n
d
启动命令为:
nmon -f -s 15 -c 240 -C nmon_config.txt
这将根据配置文件每 15 秒采样一次,采样 240 次。
场景:
适用于批量部署或自动化脚本中,需要预定义监控配置的场景。
5. 在线分析模式
在线分析模式 是 nmon
的一种特殊模式,通常结合 Web 界面或其他图形化工具来实时查看性能数据。
使用方法:
nmon
本身没有直接的图形化界面,但你可以将 nmon
生成的数据通过其他工具(如 nmonchart
, nmon_visualizer
等)实时或事后展示。
6. 无人值守模式
无人值守模式 通常与数据收集模式类似,但其重点在于长时间运行监控,并可能结合脚本进行自动化管理和报警。
使用方法:
通常与 cron
作业结合使用,以便定时启动 nmon
进行监控。
示例:
在 cron
中添加任务,每天 00:00 开始监控:
0 0 * * * /usr/bin/nmon -f -s 60 -c 1440
这将每天运行 nmon
,每分钟采样一次,采样 1440 次(24 小时)。
场景:
适用于需要长期、无人值守的系统性能监控,并可能通过脚本自动处理和分析数据。
总结
nmon
是一个功能强大且轻量级的工具,适合用来实时监控和记录 Linux 系统的性能数据。通过它,你可以轻松了解系统的运行状态,并在性能出现瓶颈时快速定位问题。如果需要长期的性能监控或分析,它生成的日志文件也非常有用。