【Linux】面向海量数据的分布式用户态文件系统研究与设计( 三 )


本文插图
图5 小文件读写测试从图5可以看出 , 由于使用分布式存储 , 小文件读写的性能随着线程数的增加而增加;当线程并发数超过256时 , 读写性能趋于稳定 , 分别是35 MB/s和80 MB/s左右 。 它的带宽低于千兆以太网理论带宽的峰值 , 这是因为对于海量的小文件 , 读写过程中产生的额外开销不可忽视 , 如MongoDB元数据读写、文件查询和定位等 。 从读写整体性能对比来看 , 相同线程数写入的带宽速率要远高于读取速率 , 这是因为小文件批量写入时采取的是顺序写的方式 , 但读取时因为文件大小比较小、数量多 , 其读取方式相当于随机读取 , 所以读取带宽速率会小于写入的带宽速率 。 在大文件测试中 , 分别使用1~1 024个线程 。 每个线程分别在挂载目录写入、读取4个1 GB大小的文件 , 用来模拟现实网络中常见的大文件读写 , 测试结果如图6所示 。 其中 , 随着线程并发数的增加 , 读写带宽随之增加 , 最终趋近于各自的峰值140 MB/s和120 MB/s 。 这与千兆以太网理论带宽相近 。
【Linux】面向海量数据的分布式用户态文件系统研究与设计
本文插图
图6 大文件读写测试从整体来看 , 系统在吞吐量性能方面有着不错的表现 , 但在小文件读取性能方面有一定的提升空间 , 因为文件系统通过MongDB访问元数据带来的性能开销在小文件读写中无法忽视 , 建议对MongoDB服务器配置SSD固态磁盘存储元数据 , 同时开启MongoDB缓存提高元数据访问速率 , 进而提高海量小文件读取时的性能 。
05
结 语
本文的创新点是在分布式存储系统的基础上 , 结合MongoDB , 使用fuse框架设计 , 实现了面向海量数据的用户态分布式文件系统 , 既具有很高的灵活性和可扩展性 , 又使得用户对分布式存储系统的访问更加便捷 , 管理更加方便 。 经过小文件读写和大文件吞吐量测试可以发现 , 本文设计的文件系统在吞吐量性能和小文件创建方面有着优良的性能表现 , 但在小文件读取性能方面有进一步的提高空间 。 作者简介 >>>
龚 恒(1993—) , 男 , 硕士 , 主要研究方向为分布式存储系统;
李小勇(1972—),男 , 博士 , 副教授 , 主要研究方向为大规模分布式存储系统、云计算、大数据 。
【【Linux】面向海量数据的分布式用户态文件系统研究与设计】选自《通信技术》2020年第二期 (为便于排版 , 已省去原文参考文献)


推荐阅读