容量与 IO 联合巡检是什么场景
容量和 IO 要放在一起看:磁盘写满与写入变慢经常同源——同一块盘既承载大量写入又接近容量上限时,两边的恶化会互相放大。日常巡检把容量、内存、IO 与连接数四类指标合成一屏输出,既可以直接当日报数据,也能在故障初期快速排除「是不是盘满了」。写这类脚本的关键是输出稳定字段,并给每条命令加超时保护。
基本信息
| 适用平台 | GNU/Linux(磁盘与内存工具加 IO 与连接统计工具) |
|---|---|
| 场景 | 日常巡检与日报数据采集 |
| 目标 | 容量与性能指标一屏产出 |
| 关注阈值 | 磁盘使用率高时预警、IO 等待时间变长时关注、连接数异常波动 |
| 脚本要求 | 稳定字段加超时保护 |
| 输出方式 | 追加到日志文件或日报系统 |
典型使用场景
- 每天定时采集一次容量与性能快照,作为日报与趋势基线。
- 故障初期快速确认是不是磁盘写满或 IO 打满。
- 容量规划:按周对比增长率,评估扩容时间点。
- 变更后对比前后指标,确认性能没有回退。
- 交接与审计时提供标准化的巡检输出。
巡检脚本骨架
巡检脚本骨架
#!/bin/bash
echo "== $(hostname) $(date -Is) ==" # 主机与时间戳
timeout 5 free -h | head -n 2 # 内存概况
timeout 5 df -h | awk 'NR==1 || $5+0>=80' # 只看使用率偏高的挂载点
timeout 5 lsblk -o NAME,TYPE,SIZE,MOUNTPOINT | head # 块设备与挂载
timeout 10 iostat -xz 1 2 | tail -n 20 # IO 利用率与等待时间
timeout 5 ss -s | head -n 3 # 连接数概况
# 落盘:bash insp.sh | tee -a /var/log/daily-insp.log指标与阈值读法
| 指标 | 异常表现 | 说明 |
|---|---|---|
| 磁盘使用率 | 高时需要预警 | 接近写满会连带影响写入性能 |
| IO 利用率 | 持续接近满载 | 说明磁盘已成为瓶颈 |
| IO 等待时间 | 明显升高 | 不同类型的盘阈值差别很大 |
| 内存可用量 | 结合缓存一起看 | 只看空闲内存会误判 |
| 连接数 | 突然大幅波动 | 与业务量与回收状态相关 |
| 交换区使用 | 大量使用 | 换页频繁会拖慢整体响应 |
提取 IO 统计的列号依赖工具版本与参数:升级后先核对表头再相信脚本,否则会取到错误的列,报表数字看起来正常但完全不对。
脚本里每条命令都要加超时保护:某条命令卡住会拖死整次采集,结果就是日报缺数据还看不出原因。
阈值要按硬件类型区分:机械盘与固态盘的 IO 等待时间差别很大,用同一套阈值会频繁误报,最终没人看报告。