Linux-Kernel
為什麼 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 核心上不存在的事實?
man7.org和 Debian 中的手冊頁有更有用的描述:
/proc/sys/fs/inode-max
(僅存在於 Linux 2.2 之前)此文件包含記憶體中 inode 的最大數量。這個值應該比 file-max 中的值大 3-4 倍,因為標準輸入、標準輸出和網路套接字也需要一個 inode 來處理它們。當您經常用完 inode 時,您需要增加此值。
從 Linux 2.4 開始,不再有對 inode 數量的靜態限制,並且該文件已被刪除。
根據最後一句話,它不存在,因為它不需要。