为什么需要性能监控 服务器性能问题可能导致:
掌握监控工具,及时发现瓶颈,是运维必备技能。
CPU 监控 top - 实时进程监控
关键指标:
us:用户进程占用
sy:系统进程占用
id:空闲百分比
wa:等待 IO(过高说明磁盘瓶颈)
htop - 美化版 top sudo apt install htophtop
功能更丰富,支持鼠标交互,可视化更好。
mpstat - 多核 CPU 统计 sudo apt install sysstatmpstat -P ALL 1
uptime - 系统负载
load average:
三个数值:1分钟、5分钟、15分钟平均负载
负载 ≈ CPU 核数时系统繁忙
负载 > CPU 核数时系统过载
内存监控 free - 内存使用
关键理解:
available 是真正可用内存(比 free 更准确)
buff/cache 是缓存,应用需要时可释放
vmstat - 虚拟内存统计
关键指标:
si/so:swap in/out(有值说明内存不足)
bi/bo:块设备读写
r:等待运行的进程数
ps_mem - 进程内存排序 pip install ps_mem sudo ps_mem
磁盘监控 df - 磁盘空间
du - 目录大小 du -sh .du -sh * | sort -rh
iotop - IO 使用排名 sudo apt install iotopsudo iotop
显示各进程的磁盘读写速率,找出 IO 瓶颈进程。
iostat - IO 统计
%util 过高说明磁盘繁忙。
网络监控 iftop - 流量监控 sudo apt install iftopsudo iftop
显示各连接的实时流量。
nethogs - 进程流量 sudo apt install nethogssudo nethogs
按进程显示网络流量,找出占用带宽的程序。
netstat/ss - 连接统计 ss -tunlp ss -tlnp | grep 80 ss -s
ping - 网络连通性
mtr - 路由追踪 sudo apt install mtrmtr 8.8.8.8
结合 ping 和 traceroute,可视化网络路径质量。
进程监控 ps - 进程列表 ps aux ps aux --sort =-%cpu | head ps aux | grep nginx
pidstat - 进程资源使用 pidstat -p <pid> 1 pidstat -r -p <pid> 1 pidstat -d -p <pid> 1
strace - 进程调用追踪 strace -p <pid> strace python script.py
综合监控工具 glances - 全景监控 pip install glances glances
一站式显示 CPU、内存、磁盘、网络、进程。
dstat - 多维度统计 sudo apt install dstatdstat -c -m -n
sar - 系统活动报告 sudo apt install sysstatsudo systemctl enable sysstatsar -u sar -r
监控脚本示例 一键健康检查 #!/bin/bash echo "=== 系统健康检查 ===" echo "" echo "【CPU】" uptime echo "" echo "【内存】" free -h | grep Mem echo "" echo "【磁盘】" df -h | grep -E "^/dev" echo "" echo "【网络】" ping -c 1 8.8.8.8 &>/dev/null && echo "网络正常" || echo "网络异常" echo "" echo "【关键服务】" systemctl is-active nginx mysql redis &>/dev/null echo ""
高负载告警 #!/bin/bash LOAD=$(uptime | awk -F'load average:' '{print $2}' | awk '{print $1}' ) CPU_CORES=$(nproc ) THRESHOLD=$(echo "$CPU_CORES * 0.8" | bc) if [ $(echo "$LOAD > $THRESHOLD " | bc) -eq 1 ]; then echo "警告:系统负载过高!当前负载: $LOAD " fi
监控工具速查表
类别
工具
用途
CPU
top/htop
实时进程监控
CPU
mpstat
多核统计
内存
free
内存概况
内存
vmstat
内存+swap
磁盘
df/du
空间统计
磁盘
iotop
IO 进程排名
网络
iftop
流量监控
网络
ss
连接统计
综合
glances
一站式监控
总结 性能监控三步走:
发现问题 :top/free/df 快速检查
定位瓶颈 :iotop/nethogs 找源头
深入分析 :strace/pidstat 看细节
日常运维建议:
定期检查(每天一次 glances)
设置告警(负载/磁盘超过阈值自动通知)
保留历史(sar 收集历史数据)
掌握这些工具,服务器健康一目了然!