赞
踩
原文地址:CSDN 博客
目前的文件系统五花八门,从人人皆知的 ext4、ntfs 和 xfs,到 btrfs、zfs 等小众文件系统,可谓是琳琅满目,让人难以抉择适合自身业务的文件系统。
本文总结了国外网友在 OpenBenchmark 网站上的结果,并给出不同情境下各大文件系统的性能表现与对比。
目前所涉及到的文件系统包括:
写文不易,还望一键三连点个关注吧!
测试基准数据来源于 Linux 4.4 File-Systems。
名称 | 配置 |
---|---|
处理器 | 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 |
对于文件系统的 benchmark,分为以下的测试手段:
测试结果的总表如下,其中标 ^
的为同测试中最优数据,标 *
为最差数据。数据单位均为 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 |
各个测试的图表如下:
通过此 benchmark,可以发现各个文件系统具有特性,且各有优缺点:
注:fio 测试中缺少 zfs 相关数据,将在之后的测试中重新进行分析。
由于 zfs 相关数据在第 2 章的测试中不够完善,因此本章补充 zfs 相关的测试内容。
本章数据参考自 ZFS Ubuntu 16.04 Testing。
名称 | 配置 |
---|---|
处理器 | 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 中基本一致,可以联合查看。
对于文件系统的 benchmark,分为以下的测试手段:
与 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 |
相较于其他常用的文件系统,zfs 在性能上并不能占得太多优势,相反地,zfs 在各方面的性能上都不及其它的文件系统。
但这并不意味着 zfs 一无是处,zfs 的使用场景主要位于多硬盘体系,其最具特色的功能在于其提供文件系统级别的 raid 阵列能力,因此仍然有不少的适用场景。
性能测试并不代表文件系统的实际体验,在读者阅读此篇文章之前,需要明确此点。
许多文件系统并不一定专门为性能而生,它们都有自己的适用场景,每个文件系统都有其独特的设计初衷。例如:
因地制宜,适才取用,才是程序员之道。
本文笔者总结了 OpenBenchmark 上的一些数据,并整合出了文件系统的性能对比。
字不在多,好用就行。笔者刚回到 CSDN 没多久,感觉 CSDN 写作中,弥漫着浓浓的就业、应试气氛。对于我这种只想观看前沿技术和新奇报道的博主而言,不是十分友好,且预感此篇文章也将石投大海,掀不起一丝风浪。
无妨,只望有用之士取之即可,愿开源精神长存!
若觉得本文有用,还望一键三连,俺必定十分感激!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。