Linux-Kernel

為什麼 Linux 核心 2.6 版中不存在 fs.inode-max 核心可調參數?

  • December 9, 2017

以下輸出(來自執行 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 核心上不存在的事實?

man7.org和 Debian 中的手冊頁有更有用的描述:

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

此文件包含記憶體中 inode 的最大數量。這個值應該比 file-max 中的值大 3-4 倍,因為標準輸入、標準輸出和網路套接字也需要一個 inode 來處理它們。當您經常用完 inode 時,您需要增加此值。

從 Linux 2.4 開始,不再有對 inode 數量的靜態限制,並且該文件已被刪除。

根據最後一句話,它不存在,因為它不需要。

引用自:https://unix.stackexchange.com/questions/399238