IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

调研分享:图片文件在各文件系统上的访问性能对比

搜索研发部官方博客 2011-06-01 23:58:49 累计浏览 2,941 次
本机暂存

1 概述

      在某产品线的图片服务器,存放了亿级别的图片文件,每个文件的大小在0.5k-100k之间,其中1K以下的文件数量在50%左右,1-4K文件数量在40%左右,4K以上10%,大量的文件存储对文件系统的性能要求非常高,特对目前业界常用系统性能在图片服务的表现进行调研。

      因线上flash卡故障率非常高,所以在寻找替代方案,磁盘是否可以满足线上系统需求?是否满足今后可扩展性(容量、文件数量)?是否可以更好的处理数据同步使用时间?

2 预期解决问题

      1、磁盘是否可以替换flash卡?

       目前发现1Tflash卡故障率极高,严重时每周多次损坏,修复数据的时间很长,最少需要6个小时。

       2、测试jfs reiserfs xfs ext2文件系统在图片业务上的性能表现(读写)。

3 测试方法及结果

3.1 测试方法

      1、模拟线上环境,进行压力测试

      搭建一套跟目前线上一样的系统环境,提取线上7天全部日志,采用压力工具(可以模拟数据全部返回)进行模拟线上环境进行压力测试(连续压力2小时以上)。

      2、利用磁盘测试工具,进行设备性能测试

      3、通过磁盘占用空间、inode节点数量进行对比

      4、通过线上数据同步,测试同步所需时间

3.2 结果分析

      1、使用磁盘完全可以替代flash

      从模拟线上产品的压力得出结论使用HP机器采用jfs和ext2文件系统完全可以满足目前线上系统及未来一段时间内需求,如下表:

原图已失效

      注:使用磁盘需要20分钟充cache,充cache期间的lighttpd的最大压力值2000.

      2、图片服务目前的瓶颈在网卡

      在进行模拟线上压力测试时,所有文件文件系统除dell-reiserfs外全部可以达到网卡流量峰值1G,随着时间推迟,平均值会下降,但是cpu也会逐渐空闲,

      3、在各种文件系统性能在图片服务的业务测试中,得出如下结果

      1)Flash卡上的ext2性能比较突出

      2)磁盘上jfs的表现更适合目前线上业务

      3)reiserfs的空间占用最小,比其他文件系统节约空间60%-65%

      如下表:

原图已失效

      4、修改线上图片更新脚本可以减少10%的时间,

      5、各文件系统下数据同步时间耗用完全不同,ext2在flash卡上,jfs在磁盘的表现非常好。

      如下表:

原图已失效

      6、在磁盘上,HP机器的小文件处理能力比dell更适合图片服务。

By huanghaibin

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 提升磁盘IO性能的几个技巧 (累计阅读 8,511)
  2. C语言中史上最愚蠢的Bug (累计阅读 8,090)
  3. 哇,让你的DB再快一倍:ext4 vs xfs对比测试 (累计阅读 5,437)
  4. 为什么Linux不需要磁盘碎片整理 (累计阅读 5,378)
  5. 文件明明存在但是file_exists总是返回FALSE (累计阅读 5,022)
  6. 分布式存储Seaweedfs源码分析 (累计阅读 4,753)
  7. php 返回目录下的所有文件名/文件夹类 (累计阅读 4,447)
  8. 使用 sshfs 调用 ssh 服务器上的内容 (累计阅读 4,370)
  9. innodb_flush_method带来的性能影响 (累计阅读 4,346)
  10. linux磁盘管理学习笔记(上) (累计阅读 4,328)