ext4、ntfs、xfs、btrfs、zfs、f2fs和reiserFS性能测试对比

原文地址:CSDN 博客


文章目录

  • ext4、ntfs、xfs、btrfs、zfs、f2fs和reiserFS性能测试对比
    • 1. 前言
    • 2. Linux 4.4 Benchmark
      • 2.1 测试环境
      • 2.2 测试手段
      • 2.3 测试结果
      • 2.4 各大文件系统对比
    • 3. ZFS Ubuntu 16.04 测试
      • 3.1 测试环境
      • 3.2 测试手段
      • 3.3 测试结果
      • 3.4 zfs 性能分析
    • 4. 关于性能测试
    • 5. 总结

1. 前言

目前的文件系统五花八门,从人人皆知的 ext4、ntfs 和 xfs,到 btrfs、zfs 等小众文件系统,可谓是琳琅满目,让人难以抉择适合自身业务的文件系统。

本文总结了国外网友在 OpenBenchmark 网站上的结果,并给出不同情境下各大文件系统的性能表现与对比。

目前所涉及到的文件系统包括:

  • btrfs
  • xfs
  • ext4
  • f2fs
  • reiserFS
  • ntfs
  • zfs

写文不易,还望一键三连点个关注吧!


2. Linux 4.4 Benchmark

测试基准数据来源于 Linux 4.4 File-Systems。

2.1 测试环境

名称 配置
处理器 Intel Xeon E5-2687W v3 @ 3.5GHz(20 Cores)
主板 MSI X99S SLI PLUS(MS-7885) v1.0
芯片组 Intel Xeon E7 v3
内存 16GB
硬盘 PNY CS1211 120GB + 80GB Intel SSDSCKGW08
操作系统 Ubuntu 16.04
内核版本 4.4.0-040400-generic(x86_64)
GCC GCC 5.3.1 20160122

各文件系统挂载选项:

文件系统 挂载选项
btrfs relatime,rw,space_cache,ssd,subvol=/,subvolid=5
xfs attr2,inode64,noquota,relatime,rw
ext4 data=ordered,relatime,rw
f2fs acl,active_logs=6,background_gc=on,extent_cache,inline_data,relatime,rw,user_xattr
reiserFS relatime,rw
ntfs allow_other,blksize=4096,group_id=0,relatime,rw,user_id=0
zfs defaults

2.2 测试手段

对于文件系统的 benchmark,分为以下的测试手段:

  • aio-stress:使用 SuSE 开发的异步 I/O 框架,测试异步 I/O 在高压环境下的随机写入能力。
  • sqlite:测量 SQLite 数据库进行固定数量的 Insert 操作的写入用时,此为数值越小越好的测试。
  • flexible IO tester:无缓存情况直写磁盘的情况下,测试硬盘对 4KB 大小的块的随机读写顺序读写能力。
  • fs-mark:创建众多的 1MB 文件以测试文件系统写入能力。
  • dbench:模拟多用户读写压力的 benchmark 工具。
  • compilebench:通过内核树的编译与更新,模拟并测试硬盘快满且文件夹存放过久后的表现。

2.3 测试结果

测试结果的总表如下,其中标 ^ 的为同测试中最优数据,标 *最差数据。数据单位均为 MB/s 或秒,且仅保留整数部分。:

测试 btrfs xfs ext4 f2fs reiserFS ntfs zfs
aio-stress ^2920 2385 2424 1606 1606 11* 146
sqlite (越小越好) 755* 379 384 471 384 ^294 501
fio: 随机读取 104 109 110 104* 112 ^215
fio: 随机写入 84 80 79 95 75* ^98
fio: 顺序读取 113* 185 185 184 185 ^219
fio: 顺序写入 81* 93 87 84 96 ^101
fs-mark: 1K 文件 35 35 35 ^60 31* 35 37
fs-mark: 5K 文件, 4 线程 68 71 ^112 76 79 41* 59
fs-mark: 5K 文件, 32 子目录 35 35 36 ^60 31* 34 36
dbench: 6 客户 53 ^62 61 54 47 29* 60
dbench: 12 客户 105 ^118 107 96 74 30* 117
compilebench: 创建内核树 160 206 314 ^339 115 44* 145

各个测试的图表如下:

2.4 各大文件系统对比

  1. 高并发读写:btrfs 最优,xfs 及 ext4 稍好,zfs 及 ntfs 最差。
  2. 随机读写:ntfs 最优,其余相差不大。
  3. 顺序读写:ntfs 最优,btrfs 最差,其余相差不大
  4. 顺序多文件写入:f2fs 最优,其余相差不大。
  5. 并发多文件写入:ext4 最优,ntfs 最差,zfs 较弱,其余相差不大。
  6. 顺序多文件写入不同子目录:f2fs 最优,其余相差不大。
  7. 多客户使用体验:xfs 最优,ntfs 最差,reiserFS 较弱,其余皆优秀。

通过此 benchmark,可以发现各个文件系统具有特性,且各有优缺点

  • btrfs 仍处于开发阶段,其 COW (Copy On Write) 机制使其对数据库的插入操作表现较差。
  • xfs 和 ext4 的综合素质优秀,特定能力上不会过于耀眼,但是对用户来说综合体验最佳
  • f2fs 在多文件情境下表现出色。
  • reiserFS 即将被 reiser4 文件系统取代,综合性能大不及其它系统。
  • ntfs 在串行的工作模式下,其随机读写和顺序读写能力都极高;反之,其在高并发高压环境下表现不佳

注:fio 测试中缺少 zfs 相关数据,将在之后的测试中重新进行分析。


3. ZFS Ubuntu 16.04 测试

由于 zfs 相关数据在第 2 章的测试中不够完善,因此本章补充 zfs 相关的测试内容。

本章数据参考自 ZFS Ubuntu 16.04 Testing。

3.1 测试环境

名称 配置
处理器 Intel Xeon E5-2687W v3 @ 3.5GHz(20 Cores)
主板 MSI X99S SLI PLUS(MS-7885) v1.0
芯片组 Intel Xeon E7 v3
内存 16GB
硬盘 PNY CS1211 120GB + 80GB Intel SSDSCKGW08
操作系统 Ubuntu 16.04
内核版本 4.4.0-21-generic (x86_64)
GCC GCC 5.3.1 20160122

各文件系统挂载选项:

文件系统 挂载选项
zfs defaults
ext4 data=ordered,relatime,rw
btrfs relatime,rw,space_cache,ssd,subvol=/,subvolid=5
xfs attr2,inode64,noquota,relatime,rw

注:此环境与测试 2 中基本一致,可以联合查看。

3.2 测试手段

对于文件系统的 benchmark,分为以下的测试手段:

  • fs-mark:创建众多的 1MB 文件以测试文件系统写入能力。
  • blogbench:模拟一个博客网站的压力场景,测试随机读写的能力。
  • dbench:模拟多用户读写压力的 benchmark 工具。
  • iozone:发起众多不同类型的 I/O 请求,测试文件系统的性能。
  • compilebench:通过内核树的编译与更新,模拟并测试硬盘快满且文件夹存放过久后的表现。、

3.3 测试结果

与 2.3 中测试样式基本一致,所使用单位为 MB/s 或其他特殊的单位:

测试 xfs ext4 btrfs xfs
fs-mark: 1K 文件 ^37 35 35 34*
fs-mark: 5K 文件, 4 线程 59* ^112 67 69
fs-mark: 5K 文件, 32 子目录 ^36 35 35* 35
blogbench: 读取 358K* 563K 2719K ^3688K
blogbench: 写入 906* ^13086 7602 5382
dbench: 6 客户 59 ^61 52* 60
iozone: 4Kb, 8GB 读取 1131* ^6272 6225 6138
iozone: 4Kb, 8GB 写入 201* 464 ^478 464
compilebench 178* ^372 191 252

3.4 zfs 性能分析

相较于其他常用的文件系统,zfs 在性能上并不能占得太多优势,相反地,zfs 在各方面的性能上都不及其它的文件系统

但这并不意味着 zfs 一无是处,zfs 的使用场景主要位于多硬盘体系,其最具特色的功能在于其提供文件系统级别的 raid 阵列能力,因此仍然有不少的适用场景。


4. 关于性能测试

性能测试并不代表文件系统的实际体验,在读者阅读此篇文章之前,需要明确此点。

许多文件系统并不一定专门为性能而生,它们都有自己的适用场景,每个文件系统都有其独特的设计初衷。例如:

  • btrfs 和 zfs 都具有 COW(Copy On Write) 机制。COW 机制使得它们在进行修改操作时具有不俗的性能,但也带来了磁盘空间的浪费,并增加了读取时的消耗。
  • btrfs 和 zfs 都自带 raid 功能。在数据可用性有要求的情况下,相比其他的文件系统,它们能提供开箱即用的 raid 阵列能力。
  • btrfs 对所有数据都带有 checksum 机制,确保文件完整性。
  • xfs 具有动态 inode 分配能力,适合大文件分配。
  • … …

因地制宜,适才取用,才是程序员之道。


5. 总结

本文笔者总结了 OpenBenchmark 上的一些数据,并整合出了文件系统的性能对比。

字不在多,好用就行。笔者刚回到 CSDN 没多久,感觉 CSDN 写作中,弥漫着浓浓的就业、应试气氛。对于我这种只想观看前沿技术和新奇报道的博主而言,不是十分友好,且预感此篇文章也将石投大海,掀不起一丝风浪。

无妨,只望有用之士取之即可,愿开源精神长存

若觉得本文有用,还望一键三连,俺必定十分感激!

ext4、ntfs、xfs、btrfs、zfs、f2fs和reiserFS文件系统性能对比相关推荐

  1. ext3,ext4,xfs和btrfs文件系统性能对比

    ext3,ext4,xfs和btrfs文件系统性能对比 应为原文:http://www.ilsistemista.net/index.php/linux-a-unix/6-linux-filesyst ...

  2. linux 2.6.39 ext3 ext4 更快 tf,ext3,ext4,xfs,jfs,reiserfs和btrfs文件系统性能对比(转载)...

    转载自:http://www.cnblogs.com/tommyli/p/3201047.html#top http://blog.csdn.net/kickxxx/article/details/9 ...

  3. indes.php默认文件,ext3,ext4,xfs,jfs,reiserfs和btrfs文件系统性能对比(转载)

    转载自:http://www.cnblogs.com/tommyli/p/3201047.html#top http://blog.csdn.net/kickxxx/article/details/9 ...

  4. Ext4 vs XFS——你应该使用哪个文件系统

    运行 Linux 系统的用户几乎不会关注底层文件系统.事实上,在安装 Linux 的过程中,通常倾向于使用列出的默认文件系统而不探索其他可用选项.对于 Windows,事情要容易得多,因为 NTFS ...

  5. 文件系统类型(ext4、xfs、fat32、vfat、ntfs、....)

    转自:https://www.cnblogs.com/daduryi/p/6619028.html Linux 1.Linux:存在几十个文件系统类型:ext2,ext3,ext4,xfs,brtfs ...

  6. ext4 ntfs mysql_文件系统类型FAT16、FAT32、NTFS、EXT3、EXT4、XFS说明和对比

    FAT16.FAT32.NTFS FAT(File Allocation Table)文件分配表.顾名思义,就是用来记录文件所在位置的表格,它对于硬盘的使用是非常重要的,假若丢失文件分配表,那么硬盘上 ...

  7. Linux日志文件系统(EXT4、XFS、JFS)及性能分析

    Ext4 ReiserFS Btrfs 等七种文件系统性能比拼 自上一篇< Ext2 v.s. Ext3 v.s. Ext4 性能比拼> 发布以来,社会各界纷纷来电来函,给出了" ...

  8. 26.分区格式化,硬盘分区,fdisk详解,mkfs格式化,mkfs.ext4,mkfs.xfs详细使用方法和示例

    本章详细讲解分区格式化,硬盘分区,fdisk使用,mkfs格式化,mkfs.ext4,mkfs.xfs详细使用方法和示例 文章目录 fdisk 分区操作 格式化作用 查看分区信息 选项含义 创建分区 ...

  9. ssd xfs mysql_固态硬盘上 Ext4 和 xfs 性能比较

    Ext4 已经成为很多新版本 Linux 系统的标配文件系统,很多人问我,在 SSD 上是使用 Ext4 好呢,还是其他文件系统. 一般我们推荐 xfs ,但它牵扯到 ext3 中已有的一些问题:在 ...

最新文章

  1. scrapy的post登录:renren
  2. unistd.h 中int access(const char * pathname, int mode); 判断进程能否以mode模式访问pathname文件(可以用来判断文件/目录是否存在)...
  3. 转 Django+Bootstrap练习--我的类博客系统开发
  4. 如何自动搜出更好、更小、更快的NLP模型?
  5. oracle浪潮优派,检查数据库的CPU和PSU补丁信息
  6. 关于Elasticsearch的精确值查找(term)不生效问题
  7. 英语NLP词汇类别列表
  8. ensp 防火墙 pat 映射
  9. python在哪里学比较好,python从哪里学起
  10. HDMI转MIPIDSI芯片,东芝TC358870
  11. Unity项目优化-Alpha通道分离
  12. 怎么把录音导入库乐队_库乐队导入音乐的具体流程讲述
  13. 利用DHT网络原理制作bt采集
  14. 项目管理中软件项目文档的分类管理
  15. 单页面应用(SPA)前端路由hash 模式 VS history 模式
  16. 输出日期为2021年的第几天(switch...case)
  17. 全球及中国护肤品行业产量规模走势与销售前景研究报告2022版
  18. cgb2110-day01
  19. Spring MVC 中 HandlerInterceptorAdapter的使用 预处理、后处理、返回处理
  20. 申宝策略-A股逆市抗跌

热门文章

  1. Linux ALSA 之七:ALSA ASoc DPCM
  2. 答题类小程序(数学题类) 2018/4/27更新
  3. 【论文阅读】SIGIR 2021:Hierarchical Multi-modal Contextual Attention Network for Fake News Detection
  4. python——turtle 赠人玫瑰,手留余香。
  5. GreenDao的简单使用说明(一)android studio中引入GreenDao
  6. IOS音频格式之AMR和WAV互转(更新支持64位)
  7. WinSserver12r2系统加固-3389端口安全
  8. mac画图工具 OmniGraffle (三)基础绘图和模具
  9. checkbox(复选框)和radio(单选按钮)的区别与详解
  10. 六、Oracle客户端工具介绍