我在 Xen VM 上遇到一个问题,其中(以 root 身份运行)df 和 baobab 同意我的磁盘使用了 94%(28G 中的 25G),但 du 仅计算总磁盘利用率的一小部分(3.3G)。
该服务器具有一个简单的 LVM 配置:一个 28G 的分区挂载到 /。lvdisplay 和 vgdisplay 都显示整个卷都已被占满。
我怎么会丢失将近22G的空间呢?
df Output
=========
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_dns-lv_root
29241444 25924244 1831788 94% /
df -h Output
============
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_dns-lv_root
28G 25G 1.8G 94% /
`du --max-depth=1 -h` Output
============================
96K ./tmp
128K ./home
23M ./root
...
94M ./etc
4.0K ./.pulse
3.4G .
答案1
如果您删除(取消链接)某个进程保持打开状态的文件,您将看到 的使用情况消失du
,但仍在 中使用df
。一旦最后一个进程关闭该文件(最晚发生在该进程退出时),该文件使用的空间将被释放并可用df
。
答案2
Linux 保留一个缓冲区空间,只有 root 才能使用。运行sudo tune2fs -l /dev/sda1
将在其输出中显示保留块的数量。
要完全关闭保留块,只需使用以下命令:
sudo tune2fs -m 0 /dev/sda1
答案3
@wurtel 的信息修复了这个问题。
Output of `lsof -n | grep deleted`
==================================
rsyslogd 943 root 1w REG 253,0 20649662640 122793 /var/log/messages.20140731 (deleted).
20649662640b 转换为 20.64G。重新启动 rsyslog 即可修复该问题!
谢谢大家!!