iostat -x 1 3
iostat -d 1 3
关键指标阈值:
iotop -o -d 2
iftop -nP
(1)查看网卡最大带宽:ethtool eth0 | grep Speed
(2)计算使用率 = (当前流量/最大带宽) × 100%
(3)告警阈值:使用率 > 70% 持续5分钟
sar -n DEV 1 3
带宽计算:
nethogs eth0
iostat -d -k 1 3
磁盘类型 正常IOPS范围 告警阈值 机械硬盘(HDD) 100-200 > 150 SATA SSD 5,000-10,000 > 8,000 NVMe SSD 50,000-100,000+ > 80,000 阿里云高效云盘 几百 > 500 阿里云SSD云盘 几千-几万 > 80%规格值
假设购买5M带宽,最大625KB/s(5×1024/8) 当前流量300KB/s,使用率 = 300/625×100% = 48%
购买带宽 最大KB/s 告警阈值 1M 128KB/s > 100KB/s 5M 640KB/s > 512KB/s 10M 1280KB/s > 1024KB/s 50M 6400KB/s > 5120KB/s 100M 12800KB/s > 10240KB/s
iostat -x 1 | head -5
条件1:%util > 80%
条件2:await > 20ms
sar -n DEV 1 3 | grep "Average.*eth0"
使用率 = (rxkB/s + txkB/s) × 8 / 1024 / 购买带宽(M) × 100%
iostat -d 1 3 | grep "sda"
当前tps > 磁盘类型正常值的80%
#!/bin/bash echo "===== 快速性能检查 =====" echo "时间: $(date)" echo "" # 1. 磁盘IO echo "1. 磁盘IO状态:" iostat -x 1 1 | tail -n +4 echo "" # 2. 网络带宽 echo "2. 网络带宽:" sar -n DEV 1 1 | grep -E "(IFACE|eth0)" echo "" # 3. 瓶颈判断 echo "3. 瓶颈分析:" UTIL=$(iostat -x 1 1 | tail -1 | awk '{print $14}') if (( $(echo "$UTIL > 80" | bc -l) )); then echo "⚠️ 磁盘IO瓶颈: 使用率${UTIL}%" else echo "✅ 磁盘IO正常: 使用率${UTIL}%" fi RX_KB=$(sar -n DEV 1 1 | grep "Average.*eth0" | awk '{print $5}' | head -1) if (( $(echo "$RX_KB > 10000" | bc -l) )); then echo "⚠️ 网络带宽高: ${RX_KB}KB/s" else echo "✅ 网络带宽正常" fi
| 监控项 | 命令 | 关键指标 | 告警阈值 |
|---|---|---|---|
| 磁盘IO | iostat -x 1 | %util, await | >80%, >20ms |
| IOPS | iostat -d 1 | tps | 见上表 |
| 网络带宽 | sar -n DEV 1 | rxkB/s, txkB/s | 使用率>70% |
| 实时流量 | iftop -nP | 实时流量 | - |
| 进程IO | iotop -o | DISK READ/WRITE | >10MB/s |
| 进程网络 | nethogs eth0 | 进程流量 | 视业务定 |
iotop -o
sync; echo 3 > /proc/sys/vm/drop_caches
nethogs eth0
tc qdisc add dev eth0 root tbf rate 1mbit burst 10kb latency 70ms
iostat -x 1
iftop -nP
top
磁盘看 iostat -x 1
网络看 iftop -nP
%util > 80% → 磁盘忙
带宽 > 70% → 网络忙
本文作者:小白
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!