1. 首页 > Linux教程 > 正文

Linux教程FG168-nmon命令系统监控

内容大纲

内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。

1. nmon命令概述

nmon命令是Linux系统中的性能监控工具,它可以实时监控CPU、内存、磁盘、网络、进程等系统资源。

# nmon命令的主要功能
# CPU监控:CPU使用率、上下文切换
# 内存监控:内存使用、交换、缓存
# 磁盘监控:磁盘I/O、磁盘使用率
# 网络监控:网络流量、网络错误
# 进程监控:进程CPU、内存使用
# 实时监控:实时显示系统状态
# 数据收集:收集数据供分析

2. nmon命令安装

使用dnf命令安装nmon。

更多视频教程www.fgedu.net.cn

# 安装nmon

# 1. 安装nmon软件包
[root@localhost ~]# dnf install -y nmon
Updating Subscription Management repositories.
Last metadata expiration check: 0:00:01 ago on Fri 03 Apr 2026 10:00:00 CST.
Dependencies resolved.
================================================================================================================
Package Architecture Version Repository Size
================================================================================================================
Installing:
nmon x86_64 16j-1.el9 epel 200 k

Complete!

# 2. 验证安装
[root@localhost ~]# nmon -V
nmon version 16j

# 3. 启动nmon
[root@localhost ~]# nmon

3. nmon命令基本使用

风哥提示:

使用nmon命令查看系统状态。

# nmon命令基本使用

# 1. 启动nmon
[root@localhost ~]# nmon
# nmon启动后,按以下键切换不同的监控视图:
# c:CPU监控
# m:内存监控
# d:磁盘监控
# n:网络监控
# t:进程监控
# k:内核监控
# q:退出nmon

# 2. 只显示CPU监控
[root@localhost ~]# nmon -c
# CPU监控界面显示CPU使用率、上下文切换等信息

# 3. 只显示内存监控
[root@localhost ~]# nmon -m
# 内存监控界面显示内存使用、交换、缓存等信息

# 4. 只显示磁盘监控
[root@localhost ~]# nmon -d
# 磁盘监控界面显示磁盘I/O、磁盘使用率等信息

# 5. 只显示网络监控
[root@localhost ~]# nmon -n
# 网络监控界面显示网络流量、网络错误等信息

# 6. 只显示进程监控
[root@localhost ~]# nmon -t
# 进程监控界面显示进程CPU、内存使用等信息

4. nmon命令交互操作

在nmon命令中使用交互式操作。

# nmon命令交互操作

# 1. 切换监控视图
# c:CPU监控
# m:内存监控
# d:磁盘监控
# n:网络监控
# t:进程监控
# k:内核监控
# j:文件系统监控
# v:虚拟内存监控

# 2. 显示/隐藏信息
# +:增加显示信息
# -:减少显示信息
# .:切换显示模式

# 3. 排序
# r:按CPU使用率排序
# m:按内存使用率排序
# d:按磁盘I/O排序
# n:按网络流量排序

# 4. 其他操作
# h:显示帮助信息
# q:退出nmon
# s:切换显示间隔
# f:切换显示频率

# 5. 保存数据
# r:开始记录数据
# s:停止记录数据
# x:导出数据到文件

5. nmon命

from PG视频:www.itpux.com

令数据收集

使用nmon命令收集系统数据。

# nmon命令数据收集

# 1. 收集数据到文件
[root@localhost ~]# nmon -f -s 10 -c 60 -m /tmp
# -f:将数据保存到文件
# -s 10:每10秒收集一次数据
# -c 60:收集60次数据
# -m /tmp:将数据保存到/tmp目录

# 2. 查看收集的数据文件
[root@localhost ~]# ls -lh /tmp/*.nmon
-rw-r–r– 1 root root 1.2M Apr 3 10:00 /tmp/localhost_260403_1000.nmon

# 3. 分析收集的数据
[root@localhost ~]# nmon -f /tmp/localhost_260403_1000.nmon

# 4. 导出数据为CSV格式
[root@localhost ~]# nmon -f /tmp/localhost_260403_1000.nmon -x
# -x:导出数据为CSV格式

# 5. 查看CSV文件
[root@localhost ~]# ls -lh /tmp/*.csv
-rw-r–r– 1 root root 2.5M Apr 3 10:10 /tmp/localhost_260403_1000.csv

# 6. 使用nmon分析工具
[root@localhost ~]# nmon_analyzer /tmp/localhost_260403_1000.nmon
# nmon_analyzer是nmon的分析工具,可以生成图表和报告

6. 实战案例

学习交流加群风哥QQ113257174

使用nmon命令监控系统性能。

# 实战案例:使用nmon命令监控系统性能

# 1. 启动nmon
[root@localhost ~]# nmon
# 在nmon界面中按c键查看CPU监控
# 在nmon界面中按m键查看内存监控
# 在nmon界面中按d键查看磁盘监控
# 在nmon界面中按n键查看网络监控
# 在nmon界面中按t键查看进程监控

# 2. 收集数据到文件
[root@localhost ~]# nmon -f -s 10 -c 60 -m /tmp
# 收集10分钟的数据,每10秒收集一次

# 3. 查看收集的数据文件
[root@localhost ~]# ls -lh /tmp/*.nmon
-rw-r–r– 1 root root 1.2M Apr 3 10:00 /tmp/localhost_260403_1000.nmon

# 4. 创建监控脚本
[root@localhost ~]# cat > /usr/local/bin/nmon-monitor.sh << 'EOF' #!/bin/bash # script.sh # from:www.itpux.com.qq113257174.wx:itpux-com # web: http://www.fgedu.net.cn # nmon监控脚本 LOG_FILE="/var/log/nmon-monitor.log" DATA_DIR="/var/log/nmon-data" ALERT_EMAIL="admin@fgedu.net.cn" # 记录日志函数 log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> $LOG_FILE
}

# 创建数据目录
mkdir -p $DATA_DIR

# 启动nmon数据收集
start_nmon() {
log “Starting nmon data collection…”
nmon -f -s 10 -c 60 -m $DATA_DIR
log “Nmon data collection started.”
}

# 停止nmon数据收集
stop_nmon() {
log “Stopping nmon data collection…”
pkill -f “nmon -f”
log “Nmon data collection stopped.”
}

# 分析nmon数据
analyze_nmon() {
log “Analyzing nmon data…”

# 查找最新的nmon文件
NMON_FILE=$(ls -t $DATA_DIR/*.nmon | head -1)

if [ -f “$NMON_FILE” ]; then
log “Analyzing file: $NMON_FILE”

# 检查CPU使用率
CPU_USAGE=$(grep “CPU_ALL” $NMON_FILE | tail -1 | awk ‘{print $100}’)

if [ $(echo “$CPU_USAGE > 80” | bc) -eq 1 ]; then
log “WARNING: CPU usage is ${CPU_USAGE}%”
echo “CPU usage is ${CPU_USAGE}%” | mail -s “WARNING: CPU usage alert” $ALERT_EMAIL
fi

# 检查内存使用率
MEMORY_USAGE=$(grep “MEM” $NMON_FILE | tail -1 | awk ‘{print $4}’)

if [ $(echo “$MEMORY_USAGE > 80” | bc) -eq 1 ]; then
log “WARNING: Memory usage is ${MEMORY_USAGE}%”
echo “Memory usage is ${MEMORY_USAGE}%” | mail -s “WARNING: Memory usage alert” $ALERT_EMAIL
fi
fi
}

# 主函数
main() {
case “$1” in
start)
start_nmon
;;
stop)
stop_nmon
;;
analyze)
analyze_nmon
;;
*)
echo “Usage: $0 {start|stop|analyze}”
exit 1
;;
esac
}

# 执行主函数
main $@
EOF

# 5. 设置脚本执行权限
[root@localhost ~]# chmod +x /usr/local/bin/nmon-monitor.sh

# 6. 创建日志文件
[root@localhost ~]# touch /var/log/nmon-monitor.log
[root@localhost ~]# chmod 644 /var/log/nmon-monitor.log

# 7. 配置定时任务
[root@localhost ~]# cat > /etc/cron.d/nmon-monitor << 'EOF' # 启动nmon数据收集 0 * * * * root /usr/local/bin/nmon-monitor.sh start # 停止nmon数据收集 59 * * * * root /usr/local/bin/nmon-monitor.sh stop # 分析nmon数据 0 1 * * * root /usr/local/bin/nmon-monitor.sh analyze EOF # 8. 重启cron服务 [root@localhost ~]# systemctl restart crond # 9. 测试监控脚本 [root@localhost ~]# /usr/local/bin/nmon-monitor.sh start # 10. 查看日志 [root@localhost ~]# tail -f /var/log/nmon-monitor.log [2026-04-03 10:00:00] Starting nmon data collection... [2026-04-03 10:00:01] Nmon data collection started. # 11. 配置日志轮转 [root@localhost ~]# cat > /etc/logrotate.d/nmon-monitor << 'EOF' /var/log/nmon-monitor.log { daily rotate 7 compress delaycompress missingok notifempty create 0644 root root } /var/log/nmon-data/*.nmon { daily rotate 30 compress delaycompress missingok notifempty } EOF # 12. 测试日志轮转 [root@localhost ~]# logrotate -f /etc/logrotate.d/nmon-monitor

提示

nmon是强大的系统监控工具,可以实时监控系统状态,

更多学习教程公众号风哥教程itpux_com

也可以收集数据供分析。建议使用nmon进行长期监控,收集数据供性能分析。nmon分析工具可以生成图表和报告,方便分析系统性能。

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息