如果inode使用率很高,这意味着什么?

经过一些谷歌研究,我发现inode的使用可能与director / files的数量有关。

  • 我猜测有一个限制(因此是什么决定了inode使用率%)。 这个限制是由什么决定的?
  • 如果Inode使用率达到100%会发生什么情况?

文件系统使用inode来跟踪磁盘上的文件位置。 如果没有更多的inode,则在有更多可用文件之前,不能将更多的文件写入文件系统。 最好在格式化文件系统之前计划文件系统上的文件系统,你可以select适合文件系统大小的inode默认大小(例如较大文件的较大inode大小,较小的文件大小为较小的文件),从而最大限度地提高文件到文件系统空间的数量。

以前的一些答案给了你正在发生的一般想法,但是让我们找出如何做一些事情。 我知道你会认为这种迂腐,但让我们从你的文件系统types开始,并讨论每个我们已经看到他们在Linux下。 你的问题被标记为Linux的事实是很重要的,因为其他* nix文件系统支持许多其他types。 我不是这些个人文件系统的专家,但我可以很快地理解详细的文章,足以击中重要的部分。

EXT2 / EXT3 / EXT4

Oliver Diedrich写了一篇题为“ 调整Linux文件系统 ”的文章,提出了一些非常重要的问题。 首先,这些文件系统将inode放入磁盘的保留区域,以便快速caching和访问。 这个空间的大小在创build文件系统的时候是固定的。 这意味着,为了增加它,你将不得不a)将文件镜像到另一个正确大小的文件系统,并且有一个切换周期,或者b)备份文件系统,正确地重新创build文件,并恢复文件。

要知道你在某个特定的文件系统上如何做,比如/ dev / sda1,使用debuge2fs -h命令,并查找有关inode的这些行。 我的文件系统在使用100GB的226GB文件系统(Ubuntu根磁盘)上有大约2.4%的inode正在使用。

  Inode count: 15032320 Block count: 60113214 Reserved block count: 3005660 Free blocks: 32794380 Free inodes: 14658480 

其他人说,当inode走了,他们走了。 他们不是在开玩笑。 我发现了一个名为ext2resize的工具,最终会提供这个function,但作者似乎已经得到了一个有趣的日常工作,花费了太多的时间。 查看常见问题 。 为了支持这种增长,不要屏住呼吸ext2 / 3/4来支持这种增长,因为大多数内核和文件系统社区认为真正有趣的工作是在固态磁盘文件系统以及集群文件系统。 ext2 / 3/4的东西是旧帽子,即使ext4是相当新的。

另一个有趣的说明是,你可以尝试优化包含大量文件的目录。 鉴于你认为你将用完inode,你可能有一些非常长的目录列表。 tune2fs -O dir_index /dev/sda1启用了b-tree索引而不是标准链表模型。 在debian-administration.org上查看tune2fs或Steve的post的手册页。

如果要用更多的inode重新创build文件系统,则必须使用mke2fs -N ___选项指向mke2fs(请参见手册页,并使用debuge2fs作为默认计算编号。或者,也可以更改inode-to-当你使用mke2fs -i ___select文件系统到mke2fs时,我的Ubuntu 10.04发行版的默认比率是16384,或者如果我正确的读了这个数值,每16384个数据块一个256字节的inode(在4KB每个),新闻阅读器的文件系统的默认比例是4096到1,这是inode的4倍。

其他文件系统

过去三年,文件系统的普及率已经大大提高。 尽pipestream行的ZFS仅在Sun的Solaris和FreeBSD下可用,但在Linux下仍然有很多。 在Linux下,您可能会考虑探索Btrfs ,ReiserFS 3, XFS或JFS 。 还有商业文件系统,它们把你的可用性和可扩展性放在心上,但是有这么多,你必须在这里看维基百科。

结论

要么你的inode条纹足够大,在第1天处理你的文件数量或移动到一个文件系统,可以处理负载。

高inode使用率通常表示很多小文件(或者文件系统损坏)。

如果用完inode,则无法创build其他文件,因此无论磁盘的实际可用容量是MB还是GB / TB,磁盘都将是“满”

有时候,系统pipe理员可能会限制文件编号,所以你不能在这种types的文件系统上有大量的小文件:)