Linux
cat /proc/sys/fs/inode-nr vs 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
/proc/sys/fs/inode-nr
顯示有關 RAM(核心記憶體)中 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 並且系統需要修剪 inode 列表而不是分配更多時,preshrink 非零。
df -i
顯示磁碟上的 inode,因此無論每個文件系統如何處理其特定的 inode 集。因此,兩組數字將始終彼此無關。