Linux下性能监测工具Nmon 的使用
1. Nmon简介
Nmon(Nigel’s Performance Monitor)是一款用于监控Linux和AIX系统资源使用情况的工具。它能够实时展示CPU、内存、磁盘I/O、网络、进程等各项系统资源的使用情况,并可以将数据记录下来,以便进行进一步的分析。Nmon不仅功能强大,而且操作简单,非常适合系统管理员进行性能调优和问题排查。
2. Nmon的安装
大多数Linux发行版的包管理器中都包含Nmon,你可以通过以下命令安装它:
-
Debian/Ubuntu:
sudo apt-get update sudo apt-get install nmon
-
Red Hat/CentOS/Fedora:
sudo yum install epel-release sudo yum install nmon
-
SUSE:
sudo zypper install nmon
安装完成后,在终端中输入 nmon
并回车,即可启动Nmon。
3. Nmon基本使用
启动Nmon后,屏幕会进入一个交互式界面,你可以通过按键盘上的字母来选择不同的监控选项。以下是Nmon的主要监控功能及对应的快捷键:
- c - 查看CPU使用情况
- m - 查看内存使用情况
- d - 查看磁盘I/O
- n - 查看网络I/O
- k - 查看内核统计信息
- t - 查看进程资源使用情况(类似Top)
- v - 查看虚拟内存使用情况
- q - 退出Nmon
按下相应的键后,你会看到相应的资源使用情况的实时数据,以下是几个典型的使用示例。
4. 典型使用示例
4.1 查看CPU使用情况
启动Nmon后,按 c
键可以查看系统所有CPU的使用情况。显示的内容包括每个CPU核心的用户模式使用率、系统模式使用率、等待时间和空闲时间。
示例输出:
CPU Utilisation
CPU | User | Sys | Wait | Idle
---- | ----- | ---- | ---- | ----
CPU0 | 10.0% | 5.0% | 1.0% | 84.0%
CPU1 | 15.0% | 7.0% | 0.5% | 77.5%
4.2 查看内存使用情况
按 m
键可以查看内存的使用情况,包括总内存、已用内存、空闲内存等信息。Nmon还会显示内核缓存、缓冲区使用情况,帮助你分析内存分配。
示例输出:
Memory Usage
Total Memory: 16GB
Used Memory: 12GB
Free Memory: 4GB
4.3 查看磁盘I/O
按 d
键可以查看磁盘的读写操作(I/O)情况,帮助你了解磁盘的负载情况。Nmon会显示每个磁盘的读写速度、队列长度等指标。
示例输出:
Disk I/O
Disk | Reads/sec | Writes/sec | Queue Length
-------- | --------- | ---------- | ------------
sda | 120 | 80 | 0.5
sdb | 200 | 150 | 1.0
4.4 查看网络I/O
按 n
键可以查看网络接口的流量情况。Nmon会显示每个网络接口的接收和发送的字节数,以及数据包的数量。
示例输出:
Network I/O
Interface | RX Packets | TX Packets | RX KB | TX KB
--------- | ---------- | ---------- | ----- | -----
eth0 | 123456 | 654321 | 3000 | 2000
4.5 查看进程资源使用情况
按 t
键可以查看当前系统进程的资源使用情况,类似于 top
命令的输出。你可以按CPU使用率、内存使用率等对进程进行排序。
示例输出:
Process Details
PID | CPU% | MEM% | Command
------|------|------|---------
1234 | 20.0 | 5.0 | java
5678 | 10.0 | 2.5 | nginx
5. Nmon数据记录与分析
除了实时监控外,Nmon还可以将数据保存到文件中,供后续分析。可以使用以下命令来记录数据:
nmon -f -s <seconds> -c <count>
- -f: 生成文件。
- -s <seconds>: 每隔多少秒采样一次。
- -c <count>: 采样的次数。
例如,每隔10秒采样一次,采样100次,并将结果保存到文件:
nmon -f -s 10 -c 100
Nmon会生成一个以当前日期和时间命名的.nmon
文件。
5.1 Nmon数据分析
生成的.nmon
文件可以使用Nmon Analyser等工具进行分析。Nmon Analyser是一个Excel插件,它可以将Nmon生成的文件转换为图表,帮助你更直观地分析系统性能。
你可以将生成的 .nmon
文件导入到Nmon Analyser中,自动生成图表,以便你分析资源的使用趋势、瓶颈和异常情况。
6. Nmon与Top的比较
-
功能范围:
- Top: 主要用于实时监控系统中运行的进程及其资源使用情况(CPU、内存等),适用于快速查看系统负载和诊断问题。
- Nmon: 提供了更加全面的系统监控功能,涵盖了CPU、内存、磁盘I/O、网络I/O、进程等多个方面,并支持数据记录和后续分析,适用于长期监控和性能调优。
-
显示方式:
- Top: 显示简洁,以文本方式展示进程信息,支持排序、过滤和终止进程等交互操作。
- Nmon: 提供字符图形化的资源使用视图,数据展示更加直观,并且可以以更灵活的方式查看不同的系统资源。
-
用户场景:
- Top: 适合需要快速了解当前系统中进程情况的用户,特别是当系统负载突然增高时,可以迅速找出问题进程。
- Nmon: 适合需要全面、长期监控系统性能的用户,特别是进行性能调优、资源趋势分析和生成报告的场景。
7. 高级功能与实战经验
7.1 使用Nmon进行长时间监控
在系统出现性能问题但无法立即定位原因时,Nmon可以用于长时间监控。通过设置合适的采样间隔和次数,可以捕捉到可能导致问题的资源使用峰值。
7.2 结合Nmon和其他工具
Nmon可以与其他性能分析工具结合使用,例如 sar
、vmstat
和 iostat
,以获得更加全面的系统性能概览。
7.3 使用脚本自动化监控
你可以编写脚本来定期运行Nmon,并将其生成的文件自动保存到指定位置,从而实现无人值守的系统性能监控。
总结
Nmon 是一款功能强大、灵活性高的系统性能监控工具,适合从初学者到高级用户的各种需求。通过Nmon,你可以实时监控系统的各项资源使用情况,并将数据记录下来进行深入分析。与Top相比,Nmon提供了更全面的监控能力,尤其适合系统性能调优和长时间监控场景。
在实际操作中,建议根据具体的监控需求选择合适的工具,如果需要快速查看和管理系统进程资源,Top可能更适合;如果需要全面监控和分析系统资源,Nmon 会是更好的选择。