Linux 磁盘空间告警:从 df 到 du 的排查顺序

举报
yd_236639601 发表于 2026/11/05 12:25:28 2026/11/05
【摘要】 磁盘空间告警最常见也最容易走弯路:看到根分区 100% 就直接删日志,结果删错文件、服务反而起不来。按下面这个顺序排查,先定位,再清理,最后防复发。 第一步:先看整体,用 df 确认是哪个分区满了df -h重点看 Use% 和 Mounted on:是根分区 / 满,还是 /var、/data 等数据分区满。不同分区满,处理方式完全不同,先别急着删。 第二步:用 du 定位大目录,一层一层往...

磁盘空间告警最常见也最容易走弯路:看到根分区 100% 就直接删日志,结果删错文件、服务反而起不来。按下面这个顺序排查,先定位,再清理,最后防复发。

第一步:先看整体,用 df 确认是哪个分区满了

df -h

重点看 Use% 和 Mounted on:是根分区 / 满,还是 /var、/data 等数据分区满。不同分区满,处理方式完全不同,先别急着删。

第二步:用 du 定位大目录,一层一层往下钻

du -sh /* 2>/dev/null | sort -rh | head -20
du -sh /var/log/* 2>/dev/null | sort -rh | head -20

先看顶层,再进可疑目录逐层钻。注意 du 看到的是目录实际占用,和 df 有时对不上,这就是下一步要查的。

第三步:df 与 du 对不上?查已删除但未释放的文件

lsof | grep deleted

日志文件被删了,但进程还拿着句柄,空间就不会释放。这时删文件没用,要重启对应服务或让进程重新打开日志,例如对日志做轮转后 reload 服务。

第四步:按类型清理,不要一刀切

  • 日志:优先用 logrotate 轮转压缩,而不是直接 rm -rf /var/log;
  • 缓存与临时文件:确认无用后再清,注意不要动正在运行的服务依赖的临时文件;
  • 旧备份与安装包:按保留策略删除,删前确认备份是否已异地留存;
  • Docker 环境:先看 docker system df,清理无用镜像与悬空卷之前先确认没有容器依赖它们。

第五步:清理后复核,并把告警阈值做在前面

df -h
df -i

除了空间,还要看 inode(df -i):小文件太多时空间没满、inode 先满,同样会写不进文件。日常做法是:日志轮转、磁盘使用率 80% 预警、定期清理任务三件套一起上,告警来了才处理就晚了。

总结:df 定分区、du 定目录、lsof 查未释放、按类型清理、最后复核并设预警。这个顺序不变,磁盘告警就不会越清越乱。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。