web-dev-qa-db-ja.com

iノードあたりのバイト数は?

非常に大きくない(4kb、8kbなど)非常に多くのファイルを作成する必要があります。私のコンピューターではすべてのiノードを最大100%使用するため、これ以上ファイルを作成できません。

$ df -i /dev/sda5
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda5            54362112 36381206 17980906   67% /scratch

(ファイルを削除し始めたので、67%になりました)

ファイルシステム(ext4)のノードあたりのバイト数は256です

$ Sudo tune2fs -l /dev/sda5 | grep Inode
Inode count:              54362112
Inodes per group:         8192
Inode blocks per group:   512
Inode size:               256

この値を128未満でも非常に低く設定することは可能でしょうか(再編成中)。はいの場合、どの値を使用すればよいですか? THX

24
oyo

Iノードごとのデフォルトのバイトは通常16384で、これはデフォルトのinode_ratio in /etc/mke2fs.conf(ファイルシステムの作成前に読み取られます)。 iノードが不足している場合は、たとえば以下を試してください。

mkfs.ext4 -i 8192 /dev/mapper/main-var2

これに影響する別のオプションは-T、通常は-T newsこれにより、さらに4096に削減されます。

また、ext3またはext4ファイルシステムのiノードの数は、再作成または16進編集せずに変更できません。 Reiserファイルシステムは動的であるため、問題が発生することはありません。

29

使用可能なスペースのサイズを使用可能なiノードの数で除算することにより、おおよそのiノード率を調べることができます。例えば:

$ Sudo tune2fs -l /dev/sda1 | awk -F: ' \
    /^Block count:/ { blocks = $2 } \
    /^Inode count:/ { inodes = $2 } \
    /^Block size:/ { block_size = $2 } \
    END { blocks_per_inode = blocks/inodes; \
          print "blocks per inode:\t", blocks_per_inode, \
                "\nbytes per inode:\t", blocks_per_inode * block_size }'

blocks per inode:    3.99759 
bytes per inode:     16374.1