免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4614 | 回复: 10
打印 上一主题 下一主题

为什么单目录下子文件过多会影响性能? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-25 20:34 |只看该作者 |倒序浏览
为什么单目录下子文件过多会影响性能?\r\n\r\n如1个目录下有10000个子文件,那么读取某个文件的速度将会明显慢下来?\r\n\r\n这和文件索引有关吗?索引中如何组织这些节点?\r\n\r\n谢谢大家帮忙

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
2 [报告]
发表于 2009-02-25 20:42 |只看该作者
是的,与索引有关。1w个不算多。上百万个就看出来了。

论坛徽章:
0
3 [报告]
发表于 2009-02-25 20:51 |只看该作者
上百万个慢是文件系统整体吧\r\n\r\n那么和当前目录怎么关系上呢?

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
4 [报告]
发表于 2009-02-25 23:20 |只看该作者
一个差不多的文件系统支持几百万个文件算什么?\r\n我是说一个目录下,不分子目录,直接放他几十万上百万的文件,此时检索这个目录索引很费资源。\r\n支持数量有限是因为目录这个对象本身容纳的大小有被限制,目录就是一个容纳文件名和文件对应inode号的容器,被限制了,那么容纳的条目也就被限制了。

论坛徽章:
0
5 [报告]
发表于 2009-02-26 08:47 |只看该作者
“目录就是一个容纳文件名和文件对应inode号的容器”\r\n这个和具体的操作系统有关吧?

论坛徽章:
0
6 [报告]
发表于 2009-02-26 09:52 |只看该作者
如果一个目录下面有很多文件,至少几十万以上,我个人的经验是读取某个指定文件名的文件速度没有明显的区别,几百万的没有测试过。但是在这个目录下面进行文件查找速度会明显降下来,而且同样级别的文件数量,在AIX的jfs下面查找的速度要慢于linux的ext3,而且从机器性能来看,AIX的小型机要明显优于linux的PC服务器,不知道是否是单纯从pc机的主频来看速度要高的原因。

论坛徽章:
0
7 [报告]
发表于 2009-02-26 09:56 |只看该作者
我上面所说的读取指定文件的速度是用C程序进行fopen操作的速度,查找的速度是在目录下面进行find的操作。

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
8 [报告]
发表于 2009-02-26 10:02 |只看该作者
是的,读取某个文件速度没影响。但是查找就费劲了。某些文件系统的索引机制不完善,甚至没有什么优化算法,致使每次查找耗费更多的时间。

论坛徽章:
0
9 [报告]
发表于 2009-02-26 10:11 |只看该作者
我觉得跟文件存放在存储介质的位置有关\r\n\r\n如果存放的位置都不是连续的话\r\n读取的文件的时候,系统执行的指令就会有一个断断续续的过程,从而耗费了时间\r\n我经常碰到这种情况,在相同的目录下存放了N万个文件,直接查看指定的某一个文件,就很容易就\r\n能看到文件内容。如果是先进入目录,然后再执行查看,进入目录就会耗费一定的时间

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:53:17
10 [报告]
发表于 2009-02-26 11:06 |只看该作者
Single PATH to dst / serach all possible PATH to dst .
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP