Performance of an large directory structure, networked application我试图找出如果要在共享的nfs文件系统上访问深目录的情况下,大型目录结构的性能将如何。 该结构将太大,具有4个嵌套目录级别,每个级别包含1024个目录。 (根目录为1024,给定子目录为1024,依此类推)。 该文件系统将位于用户将访问其个人信息的网络存储库中。 数据将被复制到多台服务器上并实现负载平衡,但是每台计算机始终都具有良好的负载。 如果第4级包含用户正在寻找的信息,那么性能会有多差? 是否所有人都访问不同的子目录? 可以通过缓存inode信息来解决此问题吗? 我已经搜索了一段时间,但是我主要是在查找有关大文件而不是大型目录结构的信息。 我曾经在工作中这样做过。记不清确切的数字,但我认为它的深度为8层,每层10个子目录(用户ID 87654321映射到目录8/7/6/5/4/3/2/1 /。事实证明,并不是一个好主意,开始遇到文件系统inode数限制,iirc(10 ^ 10 = 10000000000目录,不好)的问题。切换到每个级别更多的子目录,然后减少级别;问题消失了,您的情况听起来更易于管理,但仍然请检查您的文件系统是否支持您期望的文件和目录数量。 似乎您只想编写一个测试应用程序以生成1024个文件夹,向下迭代8个级别,每个文件夹包含一定数量(100-1000?)大小为1KB的文件,然后随机查找和访问这些文件。 跟踪多次通过的访问时间,并查看是否满足您的要求。 答案将高度依赖于您的操作系统,您能否提供更多信息?我发现Linux的文件打开时间在目录大小不超过几万的范围内是合理的,但是我没有尝试使用像您一样大的目录结构进行任何测试(您确实知道1024的四次幂是1,099,511,627,776对)那大约是地球人口的180倍,对吧?) |