我正在运行 ubuntu 14.04.1,
虽然还有剩余磁盘空间,但我的 inode 使用率达到了 100%:
ubuntu@ipsec-2:~$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/xvda1 524288 520606 3682 100% /
该设备是/dev/xvda1 on / type ext4 (rw)
当使用 stat 时,我发现很多 inode 进入了 /media:
ubuntu@ipsec-2:/$ stat -t -c "%n: %i" ./* | sort -k2 -n
{omit <100k inodes for clarity}
./initrd.img: 124172
./bin: 262145
./home: 262147
./lib64: 262148
./boot: 393217
./etc: 393218
./lib: 393219
./media: 393220
进入/media 时,它是空的:
ubuntu@ipsec-2:/$ cd /media
ubuntu@ipsec-2:/media$ ls -la
total 8
drwxr-xr-x 2 root root 4096 Apr 16 2014 .
drwxr-xr-x 22 root root 4096 Mar 28 09:25 ..
我已经尝试过重启服务器,看看这是否会释放 inode,但无济于事。
使用 lsof | grep media 也无济于事,无法查看是否有某个进程在使用它们,即使它们已被删除。
有没有办法删除 inode,或者这是预期的行为?
答案1
如果文件系统 inode 已达到限制,则需要显示 inode 的使用情况。您使用的命令将显示每个文件或目录的 inode 编号。这是不是与使用的 inode 数量相同。
$ stat -t -c "%n: %i" ./*
如果要查看 inode 使用率最大的目录,可以使用如下命令(输出中显示的最后一个目录):
$ find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n