小文件优化主要是通过优化文件操作的过程和iocache来达到优化的目的。
一、小文件速度比较快的存储系统的特点(fastdfs,mogilefs(主要适合小文件),swift(小于50KB速度很快)):
1)通过定位器直接可以定位文件存储的节点,而不用遍历所有节点;
2)文件路径长度一定,不会造成路径深度不一致,不会造成查询时间不一致;
3)要读取一个文件一般分为2个步骤:
4)hash算法或者数据库查询获得文件存储的地址;
5)http或者socket直接到对应地址去取数据,路径的解析仅仅在存储节点发生;
6)缓存机制,在swift,mogilefs中均采用memcached技术做缓存技术
(swift用户存储账户与容器服务器,mogilefs主要用于缓存数据库内容,则两则均是比较小的内容);
7)这几个系统元数据获取方式的很快。
二、glusterfs小文件速度慢的原因:
1)每个文件要操作前,路径均会到每个节点上去查询,并且每级均需要检查文件夹是否需要修复(修复是否耽误查询时间),
查询文件的元数据比较耗费时间,文件比较小的情况下查询时间可能大于读时间或者写时间(文件系统读写文件均是分块即chunk);
2)分布式模式每级目录下的目录项均由所有分布式组内的内容组成,特别是文件(这种情况ls所有目录项时表现出来);
3)fuse的引入导致路径的每