在Linux系统中,系统资源的监控是确保服务器稳定运行的重要环节。通过使用各种系统资源监控工具,管理员可以实时了解CPU、内存、磁盘、网络等关键资源的使用情况,从而快速定位和解决问题。
top
是一个实时显示系统中各个进程资源占用情况的工具,它可以动态地更新每个进程的CPU和内存使用率。
# 直接输入top命令即可查看系统资源使用情况
top
功能扩展:
P
键可以根据CPU使用率排序。M
键可以根据内存使用率排序。q
键可以退出top界面。htop
是 top
的增强版,提供了更友好的用户界面和更多的交互功能。它需要单独安装。
# 在Debian/Ubuntu系统上
sudo apt-get install htop
# 在CentOS/RHEL系统上
sudo yum install htop
# 输入htop命令即可启动
htop
功能扩展:
vmstat
是一个报告虚拟内存统计信息的工具,可以监控系统的整体性能。
# 查看系统状态,默认每秒刷新一次
vmstat 1
参数说明:
procs
: 进程队列信息。memory
: 内存使用情况。swap
: 交换分区使用情况。io
: 输入输出统计。system
: 系统中断和上下文切换次数。cpu
: CPU使用情况。iostat
是用来监控系统输入/输出存储设备(如硬盘)的工具。
# 在Debian/Ubuntu系统上
sudo apt-get install sysstat
# 在CentOS/RHEL系统上
sudo yum install sysstat
# 查看磁盘I/O统计信息,默认每秒刷新一次
iostat 1
功能扩展:
%user
: 用户空间占用CPU的百分比。%system
: 系统空间占用CPU的百分比。%iowait
: CPU等待I/O完成的时间百分比。%idle
: CPU空闲时间的百分比。sar
是一个强大的系统性能分析工具,可以收集、报告和保存系统活动信息。
# 在Debian/Ubuntu系统上
sudo apt-get install sysstat
# 在CentOS/RHEL系统上
sudo yum install sysstat
# 查看CPU使用情况
sar -u 1
# 查看内存使用情况
sar -r 1
功能扩展:
-u
: 查看CPU使用情况。-r
: 查看内存使用情况。-d
: 查看磁盘I/O情况。dstat
是一个全能型的系统资源监控工具,可以同时监控CPU、内存、磁盘和网络等资源。
# 在Debian/Ubuntu系统上
sudo apt-get install dstat
# 在CentOS/RHEL系统上
sudo yum install dstat
# 启动dstat监控
dstat
功能扩展:
-c
: 显示CPU使用情况。-m
: 显示内存使用情况。-d
: 显示磁盘使用情况。-n
: 显示网络使用情况。除了使用现成的工具外,还可以编写自定义的监控脚本来满足特定需求。例如,使用 ps
和 awk
组合来监控某个特定进程的资源使用情况。
#!/bin/bash
PROCESS="nginx" # 要监控的进程名
while true; do
echo "Checking $PROCESS resource usage..."
ps aux | grep "$PROCESS" | grep -v grep | awk '{print "PID: " $2 ", CPU: " $3 ", MEM: " $4}'
sleep 5
done
许多监控工具会生成日志文件,管理员可以通过分析这些日志文件来获取历史数据。例如,sar
工具会在 /var/log/sa/
目录下生成日志文件,可以使用以下命令查看:
sar -f /var/log/sa/sa01