大型目录结构,联网应用程序的性能

时间:2008-09-17 06:12:44

标签: performance nfs

如果要在共享的nfs文件系统上访问深层目录,我试图找出大型目录结构的性能。结构将过大,具有4级嵌套目录,每个级别包含1024个目录。 (根目录为1024,给定子目录中为1024,依此类推)。

此文件系统将位于用户将访问其个人信息的网络存储库中。数据将在多个服务器上进行复制并进行负载平衡,但是,每台机器在任何时候都会有一个不错的负载。

如果第4级包含用户正在寻找的信息,那么性能会有多糟糕?如果所有人都访问不同的子目录?这可以通过缓存inode信息来解决,还是不?

我一直在搜索这个问题,但我主要是查找有关大文件而非大型目录结构的信息。

3 个答案:

答案 0 :(得分:1)

我曾在我的工作中做过一次。不记得确切的数字,但我认为它是8级深,每个级别10个子目录(用户ID 87654321映射到目录8/7/6/5/4/3/2/1 /。原来那个这不是一个好主意,开始遇到文件系统inode数量限制的问题,iirc(10 ^ 10 = 10000000000目录,不好)。每个级别切换到更多子目录,更少级别;问题消失。你的情况听起来更易于管理但是,请检查您的文件系统是否支持您预期的文件和目录计数类型。

答案 1 :(得分:0)

这里的答案将高度依赖于您的操作系统,您能提供更多信息吗?我发现Linux下的文件打开时间一直是合理的,目录大小只有几万,但是我还没有尝试过像你这样大的目录结构的任何测试(你知道1024到第四个权限是1,099,511,627,776对?那就是地球人口的180倍,对吗?)

答案 2 :(得分:0)

好像你只想写一个测试应用程序来生成1024个文件夹,迭代8个级别,每个文件夹包含一些数量(100 - 1000?)的文件大小为1KB,然后随机查找和访问文件。

跟踪多次通过的访问时间,看看它是否符合您的要求。

相关问题