Linux 服务器上的磁盘已满,使用的块比可用的块少得多

Linux 服务器上的磁盘已满,使用的块比可用的块少得多

df 的输出是:

[root@backup log]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGro  1889811408 1861658948         0 100% /
/dev/sda1               101086     16235     79632  17% /boot
tmpfs                  1815760         0   1815760   0% /dev/shm

因此可用块应为 28.152.460,但它为 0。我一直在删除大量文件,已用块正在减少,但可用块仍为 0。

df -i 的输出是:

[root@backup log]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/mapper/VolGro 487751680 238360803 249390877   49% /
/dev/sda1              26104      37   26067    1% /boot
tmpfs                 219784       1  219783    1% /dev/shm

因此这并不是缺少 inode 的问题。

lsof +L1 的输出是:

[root@backup log]# /usr/sbin/lsof +L1
COMMAND     PID  USER   FD   TYPE DEVICE SIZE NLINK      NODE NAME
mysqld     2444 mysql    4u   REG  253,0    0     0 268795908 /tmp/ibSlaKC7 (deleted)
mysqld     2444 mysql    5u   REG  253,0    0     0 268795909 /tmp/ibhFuyGr (deleted)
mysqld     2444 mysql    6u   REG  253,0    0     0 268795910 /tmp/ibbNinKL (deleted)
mysqld     2444 mysql    7u   REG  253,0    0     0 268795911 /tmp/ibz1ia55 (deleted)
mysqld     2444 mysql   11u   REG  253,0    0     0 268795912 /tmp/ibM3IHvr (deleted)
crond      2549  root    3u   REG  253,0    5     0 248579098 /var/run/crond.pid (deleted)
yum-updat  2620  root   14w   REG  253,0    0     0 248611115 /var/run/yum.pid (deleted)
ssh       16256  root    0u   CHR  136,0          0         2 /dev/pts/0 (deleted)
ssh       16256  root    1u   CHR  136,0          0         2 /dev/pts/0 (deleted)
ssh       16256  root    2u   CHR  136,0          0         2 /dev/pts/0 (deleted)

我无法运行“du”,因为 99% 的磁盘使用量都在 /var/backups 下,其中可能包含约 1 亿个文件(某个白痴决定使用 subversion 目录从实时服务器 rsync 代码,因此有很多小文件),所以运行“du”需要几天或几周的时间。

有人对如何进行有什么建议吗?

答案1

如果这是一个 ext 文件系统,默认根保留空间将是 1889811408 个块的 5%,即 94490570 个块。换句话说,您还有大约 66GB 的空间需要删除,然后df才会报告可用空间

用于tune2fs -m 1 /dev/mapper/VolGro将保留量减少到 1%,或-r NNNN将其设置为特定数量的块。需要有足够的保留空间,以便即使用户“填满”磁盘后仍可继续记录(但如果您以 root 身份填充磁盘,当驱动器完全填满时,这不会让您免于问题)

其他文件系统可能也有保留块,但是调整这些块的命令会有所不同。

答案2

运行 fsck 来查看文件系统是否损坏。

答案3

如果你删除了诸如 apache 日志文件之类的内容,则需要重新启动 apache 才能“释放”空间

答案4

因此可用块应为 28.152.460,但它为 0。我一直在删除大量文件,已用块正在减少,但可用块仍为 0。

我怀疑这些文件在您删除时仍在您的服务中使用。因此,只需重新启动服务,df命令就会更新可用空间。

相关内容