cat /proc/sys/fs/inode-nr 与 df -i 的输出

cat /proc/sys/fs/inode-nr 与 df -i 的输出

输出有什么区别

cat /proc/sys/fs/inode-nr

df -i

两者都记录了返回正在使用的 inode 数量,但它们返回的数字显然不相关。

$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
devtmpfs        954448    464  953984    1% /dev
tmpfs           956943      1  956942    1% /dev/shm
/dev/xvda1     1310720 272395 1038325   21% /
/dev/xvdb1     1966080  26278 1939802    2% /tmp
tmpfs           956943      1  956942    1% /hdd1/mnt/data
$ cat /proc/sys/fs/inode-nr
199563      122925

答案1

/proc/sys/fs/inode-nr显示 RAM(内核缓存)中 inode 的数据,首先是当前已分配的 inode,然后是空闲的 inode。内核使用 inode 做很多事情,而不仅仅是文件。例如,网络套接字也是通过 inode 来识别的。

https://www.kernel.org/doc/Documentation/sysctl/fs.txt

文件 inode-nr 包含 inode-state 的前两项,因此我们将跳到该文件...

Inode-state 包含三个实际数字和四个虚拟数字。实际数字按出现顺序依次为 nr_inodes、nr_free_inodes 和 preshrink。

Nr_inodes 代表系统已分配的 inode 数量,该数量可能略大于 inode-max,因为 Linux 每次分配一页。

Nr_free_inodes 表示空闲的 inode 数量(?),当 nr_inodes > inode-max 时,preshrink 非零,系统需要修剪 inode 列表而不是分配更多。

df -i显示磁盘上的 inode,因此每个文件系统都可以使用其特定的 inode 集来执行任何操作。

因此这两组数字将始终保持彼此不相关。

相关内容