目录复杂性对 i 节点有何影响?

目录复杂性对 i 节点有何影响?

对于使用大量图像(每天±1k-3k)的单个项目,我使用自定义 PHP 脚本来处理图像并将其保存到服务器。

当前 PHP 脚本处理它们并保存在以下文件夹结构中: 在此处输入图片描述 因此最大级别为 5。但目前我认为以下目录结构如何影响 inode 计数?我应该将级别降低到 2 还是 3?

答案1

每个目录条目也是一个 inode 条目。

16**5 = 1,048,576

16**3 = 4,096

一年的图像...2,000 * 365 = 730,000。

这样每个目录大约有 178 个,深度为 2。深度为 5 时,利用率刚好超过一半。我觉得三个听起来不错。也许如果你在这个行业待十年的话我会选择 4。

答案2

每个文件和目录都会占用一个 inode,但我认为在一个大小合适的文件系统上,耗尽 inode 的风险并不大——在 5 层深度下,您的目录树将占用16^51048576 个 inode,这是一个相当大的数字,但不太可能压垮您的文件系统。另一方面,您存储的文件数量可能会导致一些问题……

但是,每级仅使用一个十六进制数字有点浪费——我通常每级使用三位数字(所以ab3/4f5/5e1/...),因为这样每级有 4096 个目录,这在一个不错的文件系统的合理性能范围内(不要使用 4 位,因为 extN 只允许在单个目录中有 32000 个子目录)。

当然,还有整个文件系统世界,它们没有固定的 inode 限制,并且在面对每个目录中的大量文件时具有更好的性能,并且对子目录的数量没有限制......

相关内容