在运行 Ubuntu 10.04 的虚拟化服务器上,df 报告以下内容:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 7.4G 7.0G 0 100% /
none 498M 160K 498M 1% /dev
none 500M 0 500M 0% /dev/shm
none 500M 92K 500M 1% /var/run
none 500M 0 500M 0% /var/lock
none 500M 0 500M 0% /lib/init/rw
/dev/sda3 917G 305G 566G 36% /home
这让我很困惑,原因有二:1.) df 说 /dev/sda1 安装在 / 上,有 7.4 GB 的容量,其中只有 7.0 GB 被使用,但它报告 / 已 100% 满;2.) 我可以在 / 上创建文件,所以显然还有剩余空间。
可能相关的是,目录 /www 是 /home/www 的符号链接,而 /home/www 位于不同的分区(/dev/sda3,安装在 /home)。
有人能提供一些建议,说明这里可能发生了什么吗?服务器似乎运行正常,但我想确保分区表、文件系统或其他东西没有问题,否则以后可能会导致内爆(或爆炸)。
答案1
进程可能打开了一个大文件,但该文件后来被删除了。您必须终止该进程才能释放空间。您可以使用 lsof 来识别该进程。在 Linux 上,lsof 可以识别已删除但打开的文件,并在 lsof 的输出中将其标记为(已删除)。
你可以使用以下方法检查sudo lsof +L1
答案2
5%(默认情况下)的文件系统空间是为文件系统填满的情况保留的,以防止出现严重问题。您的文件系统已满。由于有 5% 的缓冲区,不会发生任何灾难性事件 - root 被允许使用该安全缓冲区,并且在您的设置中,非 root 用户没有理由写入该文件系统。
如果您有以非 root 用户身份运行的守护进程,但需要管理文件系统中的文件,则会出现问题。 一个常见的此类守护进程是named
。 另一个是ntpd
。
答案3
您的 inode 可能不足。使用以下命令检查 inode 使用情况:
df -i
答案4
除了已经提出的原因外,在某些情况下还可能是以下原因:
- 在现有文件夹“上方”安装了另一个磁盘,该文件夹已充满数据
- du 将计算已安装磁盘的大小,df 将显示实际花费
- 解决方案:(如果可能)卸载所有非根磁盘并再次检查大小
du -md 1
。通过移动来解决问题隐文件夹移到其他地方或安装在不同的地方。