每个inode有多少个字节?

oyo*_*oyo 24 filesystems inode ext4

我需要创建非常多的文件,这些文件不是很大(如4kb,8kb).这在我的计算机上是不可能的,因为它使所有inode达到100%并且我无法创建更多文件:

$ df -i /dev/sda5
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda5            54362112 36381206 17980906   67% /scratch
Run Code Online (Sandbox Code Playgroud)

(我开始删除文件,这就是为什么它现在是67%)

我的文件系统上每个节点的字节数为256(ext4)

$ sudo tune2fs -l /dev/sda5 | grep Inode
Inode count:              54362112
Inodes per group:         8192
Inode blocks per group:   512
Inode size:               256
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以将此值设置得非常低,甚至低于128(在重新格式化期间).如果是,我应该使用什么价值?谢谢

小智 29

每个inode默认字节通常是16384,这是缺省值inode_ratio/etc/mke2fs.conf(它事先读出到文件系统创建).如果你的inode用完了,你可以尝试例如:

mkfs.ext4 -i 8192 /dev/mapper/main-var2
Run Code Online (Sandbox Code Playgroud)

影响这一点的另一个选择是-T,通常将-T news其进一步降低到4096.

此外,如果不重新创建或对其进行十六进制编辑,则无法更改ext3或ext4文件系统中的inode数.Reiser文件系统是动态的,因此您永远不会遇到问题.

  • 如何确定文件系统的当前字节数/ inode值?您的命令有效,但是tune2fs输出中是否有一些显示比率的值? (4认同)

Sta*_*nko 13

您可以通过将可用空间的大小除以可用的inode数来找出近似的inode比率.例如:

$ 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
Run Code Online (Sandbox Code Playgroud)