ext4、ntfs、xfs、btrfs、zfs、f2fs和reiserFS性能测试对比
原文地址:优快云 博客
文章目录
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:通过内核树的编译与更新,模拟并测试硬盘快满且文件夹存放过久后的表现。

本文对比了多种文件系统的性能,包括ext4、ntfs、xfs、btrfs、zfs、f2fs和reiserFS。在Linux4.4环境下,btrfs在高并发读写中表现最优,ntfs在随机读写和顺序读写上有优势,而zfs的性能相对较弱。测试结果显示,各文件系统在不同场景下有各自的特点,选择应根据具体需求。ZFS在多硬盘和数据完整性的场景下更具价值。
最低0.47元/天 解锁文章
137

被折叠的 条评论
为什么被折叠?



