Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
hydrazt
V2EX  ›  Linux

目录中有 500w+个小文件,有什么办法提高文件系统的性能吗?

  •  1
     
  •   hydrazt · May 23, 2014 · 5977 views
    This topic created in 4551 days ago, the information mentioned may be changed or developed.
    无论是 'du -sh /data'或'find /data -type f'都非常慢,使用的是 ext4文件系统。
    求推荐优化方法。
    21 replies  •  2014-05-27 13:33:52 +08:00
    ysjdx
    ysjdx
    May 23, 2014
    1
    换reiserfs会不会好点
    46fo
    46fo
    May 23, 2014
    2
    曾经 就被这个问题困扰过
    pubby
    pubby
    May 23, 2014
    3
    印象中,没有哪个文件系统能吃得消这样整。

    你这啥系统,设计方案有问题。
    dorentus
    dorentus
    May 23, 2014 via iPhone
    4
    du -s 和 find 本来就是要便利文件的,数量多了自然慢
    但是你的上层应用应该不会有经常这么做的需求吧
    hydrazt
    hydrazt
    OP
    May 23, 2014
    5
    @ysjdx 没尝试过,之后测试一下
    @pubby 用户上传的图片,有什么建议吗?吧500w个文件分散倒10000个子目录后,还是慢。。
    @dorentus du -s 和 find 只是极端情况
    love
    love
    May 23, 2014
    6
    我的目录里分了二级目录,比如 xxxxxxxx/xxxxxxxx/xxx.jpg,大概100W左右文件,速度完全没有问题。

    当然你说的du -s和find是全遍历,不可能快的,换任何方式存文件都不行。
    why
    why
    May 23, 2014
    7
    存数据库嘛
    20150517
    20150517
    May 23, 2014
    8
    你得用mongo gridfs
    micate
    micate
    May 23, 2014
    9
    嗯,上数据库吧。

    或者结构复杂点,比如文件还是散列到目录中,但同时存储一份信息到数据库。
    这样可以满足 du -s 的需求,直接数据库 sum(),find 也是数据库记录查找。
    46fo
    46fo
    May 23, 2014 via iPhone
    10
    淘宝的文件系统阿。专处理小文件
    cuixiaolu
    cuixiaolu
    May 24, 2014
    12
    @cdffh 说的,淘宝的TFS应该可以解决这个问题
    腾讯的也有TFS,但是不知道有没有开源
    skydiver
    skydiver
    May 24, 2014 via Android
    13
    按前缀分n级目录就行啊
    yakczh
    yakczh
    May 24, 2014
    14
    map reduce
    7rack
    7rack
    May 24, 2014
    15
    存储最好上SSD,做raid-1哇,如果要备份啥的,要用上 LVM。这里讲的比较多,也许对你有帮助 http://lwn.net/Articles/400629/
    perrywky
    perrywky
    May 24, 2014
    16
    为何不用又拍云或者七牛
    hydrazt
    hydrazt
    OP
    May 24, 2014
    17
    @love @skydiver 目前我们方案也类似 :)
    @why @20150571 @micate 数据库的话,会很大,几个t吧。
    @xdeng @cdffh tfs有点意思。
    @perrywky cdn用于分发文件,本地的存储还是要用的
    perrywky
    perrywky
    May 24, 2014
    18
    @hydrazt 其实云存储解决的就是这种问题,本地存个索引就行了
    hydrazt
    hydrazt
    OP
    May 24, 2014
    19
    @perrywky 自己硬盘上没备份心里不太踏实。不过结合云存储的方案,近期会实践一下,云和本地都存上一份,数据库纪录一下对应关系~
    jamiesun
    jamiesun
    May 25, 2014
    20
    对每个目录在当前创建一个索引文件,使用后台任务进行索引, 查找统计就直接查索引
    favormm
    favormm
    May 27, 2014
    21
    数据库吧。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1796 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 13:45 · PVG 21:45 · LAX 05:45 · JFK 08:45
    ♥ Do have faith in what you're doing.