Linux磁盘空间告警时应先定位真实瓶颈:用du逐层下钻查大目录,lsof+L1揪出已删除但被占用的“幽灵文件”,df-Th识别tmpfs/overlay等伪文件系统干扰,再重点清理journalctl日志、Docker残留和包管理缓存。

Linux磁盘空间告警时,别急着删文件,先定位真实瓶颈——90%的问题出在“看不见”的地方:大日志、已删除但未释放的文件、隐藏挂载点或容器残留数据。
快速定位谁占了最多空间
用 du 结合 sort 和 head 逐层下钻,避免卡在海量小文件上:
- du -sh /* 2>/dev/null | sort -hr | head -10 —— 查看根下各一级目录大小(跳过权限错误)
-
du -sh /var/* 2>/dev/null | sort -hr | head -5 —— 进入可疑目录继续深挖,如
/var/log、/var/lib - 加 --max-depth=1 防止递归过深拖慢速度;-x 参数可限制在同一文件系统内(避开挂载子目录干扰)
揪出“看不见”的大文件:已删除但仍被进程占用
文件被 rm 后若仍有进程打开它,磁盘空间不会释放。这类“幽灵占用”常导致 df 显示满,但 du 算不出来源:
- lsof +L1 —— 直接列出所有已删除但仍被打开的文件(需 root 权限)
- lsof | grep deleted | awk '{print $7,$9}' | sort -nr | head -5 —— 按大小倒序看前5个(第七列是大小,第九列是路径)
- 常见场景:应用日志被轮转删除,但服务没重载日志配置,旧句柄仍持有大文件;解决办法是重启对应进程或用
kill -USR1触发日志重载(如 nginx、rsyslog)
检查挂载异常与伪文件系统干扰
df -h 显示满,但 du 总和远小于它?可能是挂载覆盖、tmpfs 占用或 overlayfs 留下的容器层:
标签: linux centos docker nginx ubuntu
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~