Linux 分卷状态监控实用指南
一 基础巡检命令
- 查看文件系统容量与挂载点:df -hT(关注 Use%、Avail、Filesystem/挂载点)。
- 查看块设备与分区关系:lsblk(树状展示 NAME、SIZE、TYPE、MOUNTPOINT、FSTYPE)。
- 查看分区表与磁盘布局:fdisk -l 或 parted -l(确认分区类型、大小、起始扇区)。
- 定位大目录/文件占用:du -sh /path;交互式分析:ncdu /path(需安装 ncdu)。
- 查看块设备属性与 UUID:blkid。
以上命令覆盖容量、布局与占用三大维度,适合日常巡检与问题初判。
二 性能与健康监控
- 磁盘 I/O 性能:iostat -x 1(关注 %util、await、r/s、w/s、svctm,判断是否存在 I/O 瓶颈)。
- 综合资源与 I/O:vmstat 1(观察 wa(I/O 等待)、si/so(换入换出))。
- 进程级 I/O:iotop(识别占用磁盘的进程,需 root)。
- 磁盘健康 S.M.A.R.T.:smartctl -a /dev/sdX(关注 Reallocated_Sector_Ct、Power_On_Hours、Temperature 等关键属性)。
这些工具帮助从系统负载、设备健康到进程行为全方位监控分卷性能与风险。
三 LVM 逻辑卷专项
- 查看卷组/逻辑卷/物理卷:vgs、lvs、pvs(关注 VG、LV、PV、Size、Free、Attr)。
- 查看 LV 与底层设备映射:lsblk 或 lvs -o +devices(确认 LV 是否跨 PV、条带化/镜像等布局)。
- 扩展前后对比:lvs 与 df -h 联用,确认扩容生效与空间释放。
- 元数据一致性检查:vgck、lvdisplay 查看 LV 状态与属性。
- 提醒:扩容文件系统前先确认文件系统类型(如 ext4/xfs)与在线扩容能力,避免数据风险。
以上命令覆盖 LVM 元数据、容量与映射关系,适合容量规划与扩容验证。
四 阈值告警与自动化
#!/usr/bin/env bash
set -euo pipefail
WARN=${1:-80}
CRIT=${2:-90}
MP=${3:-/}
USED=$(df -hT "$MP" | awk 'NR>1{gsub(/%/,"",$6); print $6; exit}')
if (( USED >= CRIT )); then echo "CRITICAL: $MP $USED% used"; exit 2
elif (( USED >= WARN )); then echo "WARNING: $MP $USED% used"; exit 1
else echo "OK: $MP $USED% used"; exit 0
fi
- 使用方式:保存为 check_fs.sh,赋权后执行:
- 示例:./check_fs.sh 85 95 /
- 可接入 Nagios/Zabbix/Prometheus Node Exporter 做统一告警与可视化。
该脚本便于在定时任务或监控平台中复用,实现容量阈值告警自动化。
五 排障与优化建议
- 容量告急:先用 ncdu 或 du -sh 定位大文件/目录;清理或归档后再观察 df -h。
- I/O 高占用:用 iotop 定位进程,结合 iostat -x 1 判断设备饱和;必要时优化 SQL/日志/缓存策略或迁移热点数据。
- 健康风险:对系统盘/数据盘定期执行 smartctl -a,关注重映射扇区与温度异常。
- 变更窗口:扩容 LV 后,按文件系统类型执行相应在线/离线扩容,并用 lvs 与 df -h 双重确认。
以上步骤覆盖从空间清理、性能瓶颈定位到硬件健康与变更验证的完整闭环。