要访问 ext3 上的文件,(如果不使用 dir_index)最佳目录深度与每个目录的文件数相比是多少?文件大小会影响这一点吗?文件总数可能是一个因素,但我认为仍然应该有一个等式...
如果你没有基准来支持它,我仍然对你的想法感兴趣可能 是最佳的,为什么?也许某些系统调用需要更长的时间,或者您的计算机科学知识可能表明答案是什么。或者,如果您有其他文件系统的示例,那可能也很有趣,但我想知道答案是什么,而无需单独的索引机制(例如 dir_index tune2fs 选项)。
我见过这个问题,也曾想过答案,但一直没找到。目前,实际上数据库很可能就是答案。但是,我仍然想知道文件系统的答案是什么。
答案1
要访问 ext3 上的文件,并且(如果没有使用 dir_index)最佳目录深度与每个目录的文件数是多少?
您将需要为此运行自己的基准测试。
文件大小会影响这个吗?文件总数可能是一个因素,但我认为仍然应该有一个等式...
文件大小不会影响这一点,这是一个与您所使用的文件系统的文件头条目数量相关的函数。
如果您没有基准来支持它,我仍然会感兴趣您认为什么可能是最佳的以及为什么?
32,000 个文件几乎是上限,但根据我自己的经验,我建议少于 10,000 个文件,除非你想等一两分钟。几千个文件可以在大约 5-20 秒内完成,具体取决于 I/O 和服务器负载等。几百个文件几乎是即时的。
后续编辑(针对已发布的评论):
拥有 8 个目录,每个目录包含 2,500 个文件远的比拥有两个各有 10,000 个文件的目录要好得多。秘诀在于减少每个目录中的搜索时间。
奇怪的是,我刚刚在这里发布了类似问题的类似答案。