磁盘满了怎么办?df 和 du 的区别与排查思路

举报
yd_226584033 发表于 2026/11/02 08:52:09 2026/11/02
【摘要】 "磁盘空间不足"是服务器最常见的告警之一。很多新手第一次遇到时只会反复执行 df -h,却不知道下一步该干什么。这篇文章讲清 df 和 du 的分工,以及一套快速定位大文件的流程。一、df 和 du 分别看什么- df(disk free):看文件系统层面的磁盘占用,按挂载点统计。告警系统报的"磁盘使用率 90%"就是它。- du(disk usage):看目录/文件实际占了多少空间,用来向...

"磁盘空间不足"是服务器最常见的告警之一。很多新手第一次遇到时只会反复执行 df -h,却不知道下一步该干什么。这篇文章讲清 df 和 du 的分工,以及一套快速定位大文件的流程。

一、df 和 du 分别看什么

- df(disk free):看文件系统层面的磁盘占用,按挂载点统计。告警系统报的"磁盘使用率 90%"就是它。
- du(disk usage):看目录/文件实际占了多少空间,用来向下钻取。

两者视角不同,有时会出现 df 显示满了、du 加起来却差很多的情况,常见原因是有进程持有已删除的大文件(空间未释放),重启对应进程或 lsof | grep deleted 即可定位。

二、五步定位大文件

1. df -h 先确认哪个分区满了
2. du -h --max-depth=1 /data | sort -rh 逐层往下找最大的目录
3. 进入可疑目录继续 du,直到定位到具体文件
4. 确认文件可以删:日志类先看是否有进程在写,用 truncate -s 0 file 清空而不是直接 rm
5. 删完 df -h 复查是否释放

三、日常预防

- 日志轮转:配好 logrotate,避免单个日志无限膨胀
- 监控告警:磁盘使用率超过 80% 就告警,留出处理时间
- 定期清理:包管理缓存(apt clean / yum clean all)、旧内核、临时目录

总结:df 定位分区,du 钻取目录,lsof 处理"删了但没释放"的幽灵文件。三件套用熟,磁盘告警就不再是事故。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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