Linux系统监控就像汽车的"仪表盘",实时展示着各个核心部件的运行状态!本文将带你全面掌握Linux系统资源监控的方方面面,从CPU、内存到磁盘I/O、网络流量,从基础命令到高级工具,从实时监控到历史数据分析。无论你是要优化服务器性能,还是排查系统瓶颈,这篇文章都会成为你的监控宝典!准备好终端,让我们一起开启这场系统性能探索之旅吧~
top # 经典CPU监控工具
htop # 增强版top(需安装)
mpstat -P ALL 1 # 每核CPU使用率(需安装sysstat)
perf top # 性能计数器分析
sar -u 1 3 # 历史CPU数据(需安装sysstat)
pidstat -u 1 # 进程级CPU使用率
free -h # 内存使用概览(人类可读格式)
vmstat 1 # 虚拟内存统计
cat /proc/meminfo # 详细内存信息
指标 | 含义 |
---|---|
MemTotal | 总物理内存 |
MemFree | 完全空闲内存 |
MemAvailable | 实际可用内存(包括缓存可回收部分) |
Buffers | 块设备缓存 |
Cached | 文件系统缓存 |
Swap | 交换空间使用情况 |
smem -s swap -r # 按内存使用排序(需安装smem)
valgrind --tool=massif ./program # 应用程序内存分析
iostat -xz 1 # 磁盘I/O统计
iotop # 类似top的I/O监控(需安装)
dstat -d # 磁盘活动监控
blktrace -d /dev/sda -o - | blkparse -i - # 块设备跟踪
sar -d 1 3 # 历史磁盘活动数据
iftop # 实时带宽监控(需安装)
nload # 网络负载监控(需安装)
ip -s link # 网络接口统计
netstat -tulnp # 活动连接和监听端口
ss -s # 更现代的socket统计
tcpdump -i eth0 -n -w capture.pcap # 抓包分析
nicstat 1 # 详细网络接口统计(需安装)
nethogs # 按进程统计带宽(需安装)
vmstat 1 # 综合CPU/内存/IO
dstat -tcmnd # 综合CPU/内存/网络/磁盘
glances # 图形化综合监控(需安装)
nmon # 专业性能监控(需安装)
bpytop # Python编写的高级监控(需安装)
prometheus + grafana # 企业级监控方案
sar # 查看所有历史数据
sar -q 1 3 # 查看运行队列和负载
sar -W 1 3 # 查看交换统计
sar -n DEV 1 3 # 查看网络历史
# 编辑sysstat配置(通常位于)
/etc/sysconfig/sysstat # RHEL/CentOS
/etc/default/sysstat # Debian/Ubuntu
# 调整收集频率(默认10分钟)
SADC_OPTIONS="-S XALL 10 3" # 每10秒采样,保留3天
ps aux --sort=-%cpu | head # CPU使用前10进程
ps aux --sort=-%mem | head # 内存使用前10进程
pidstat 1 # 进程级CPU/内存/IO统计
pmap -x PID # 进程内存映射详情
strace -c -p PID # 统计系统调用
# CPU使用率超过90%报警
if [ $(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d. -f1) -gt 90 ]; then
echo "High CPU usage!" | mail -s "Alert" [email protected]
fi
docker stats # 实时容器资源使用
docker inspect --format='{{.State.Pid}}' container # 获取容器PID
kubectl top nodes # 节点资源使用
kubectl top pods # Pod资源使用
通过本文的系统学习,我们已经构建了完整的Linux监控知识体系:
监控黄金法则:
记住:没有监控的系统就像盲人骑瞎马! 现在就去部署你的监控系统,让一切尽在掌握!✨
PS:如果你在学习过程中遇到问题,别慌!欢迎在评论区留言,我会尽力帮你解决!