为什么 Linux 内核版本 2.6 上不存在 fs.inode-max 内核可调参数?

为什么 Linux 内核版本 2.6 上不存在 fs.inode-max 内核可调参数?

以下输出(来自运行 CentOS 6.6 的 Vagrant VM)大部分是不言而喻的:

[root@localhost ~]# echo 131072 > /proc/sys/fs/inode-max
-bash: /proc/sys/fs/inode-max: No such file or directory
[root@localhost ~]# sysctl -q -p
[root@localhost ~]# echo 'fs.inode-max = 131072' >> /etc/sysctl.conf
[root@localhost ~]# sysctl -q -p
error: "fs.inode-max" is an unknown key
[root@localhost ~]# man proc | col -b | grep -A6 '/proc/sys/fs/inode-max$'
       /proc/sys/fs/inode-max
        This  file  contains the maximum number of in-memory inodes.  On
        some (2.4) systems, it may not be present.  This value should be
        3-4 times larger than the value in file-max, since stdin, stdout
        and network sockets also need an inode to handle them.  When you
        regularly run out of inodes, you need to increase this value.

[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# 

如何协调暗示这将不存在的手册页声明在 2.4 内核上,事实上它不存在于这个 2.6 内核上?

答案1

man7.org 中的手册页在 Debian 中有一个更有用的描述:

/proc/sys/fs/inode-max(仅在 Linux 2.2 之前存在)

该文件包含内存中 inode 的最大数量。该值应比 file-max 中的值大 3-4 倍,因为 stdin、stdout 和网络套接字也需要 inode 来处理它们。当您经常用完 inode 时,您需要增加此值。

从Linux 2.4开始,inode数量不再有静态限制,并且该文件被删除。

根据最后一句话,它不存在,因为不需要。

相关内容