You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DigitalOcean Droplet磁盘空间异常:df显示用22G,仅找到6G占用求排查

磁盘空间显示与实际不符的排查思路

1. 排查已删除但被进程占用的文件

Linux里文件被删除后,只要有进程还在打开它,df就会继续统计这部分空间,但常规文件工具看不到。用以下命令找出这类文件:

lsof | grep deleted

找到对应进程后,要么重启该进程释放空间,要么直接终止进程(注意评估业务影响)。

2. 检查挂载点下被隐藏的文件

如果某个分区挂载到了原本已有文件的目录上,原目录的文件会被隐藏,df统计的是整个分区占用,但扫描工具只能看到挂载后的内容。

  • 若挂载点非根分区,可临时卸载查看:
# 先停掉挂载点相关服务,再卸载
umount /your/mount/point
# 查看原目录内容
ls -lh /your/mount/point
# 操作完成后重新挂载
mount /your/mount/point
  • 根分区无法卸载时,用bind挂载到临时目录扫描:
mkdir /tmp/root_bind
mount --bind / /tmp/root_bind
# 用ncdu或find扫描/tmp/root_bind
ncdu /tmp/root_bind

3. 查看文件系统预留空间

ext4等文件系统默认会预留5%空间给root用户,防止磁盘满时root无法操作。可以查看预留比例:

tune2fs -l /dev/vda1 | grep "Reserved block count"

如果不需要这么多预留空间,可调整比例(比如改成1%):

tune2fs -m 1 /dev/vda1

4. 查找大尺寸隐藏文件或临时文件

有些备份、快照工具会留下隐藏的大文件,用find直接扫描全系统:

# 查找大于1G的文件
find / -type f -size +1G
# 查找大于100M的隐藏文件
find / -name ".*" -type f -size +100M

5. 检查日志轮转异常

如果logrotate配置错误,可能导致旧日志被重命名但进程仍在写入原文件,或者轮转后的日志未被清理。检查日志目录:

ls -lh /var/log/
# 查看哪些日志文件被进程占用
lsof /var/log

6. 排查容器/虚拟机存储占用

如果服务器运行了Docker或K8s,容器镜像、卷可能占用大量未被常规工具扫描到的空间:

# 查看Docker空间使用情况
docker system df
# 列出所有Docker卷
docker volume ls

K8s环境则检查PV、PVC的实际占用。


内容的提问来源于stack exchange,提问作者Serhii Polishchuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:22:21