看了这篇性能测试文章,我直接就不想上 BtrFS 了

#1

EXT4/Btrfs/XFS/F2FS Benchmarks On Linux 3.17

这是 phoronix 给出的一篇测评,基于 linux 内核 3.17 的。我把里面的测试的柱状图截图如下:

!](http://tof.canardpc.com/view/cbe17c80-a941-4837-aa6e-7286adbc11ea.jpg)

!](http://tof.canardpc.com/view/1f1c4395-07a9-4a49-98fc-444867390383.jpg)

!](http://tof.canardpc.com/view/b0f302fc-e3d2-4b36-a4e5-39027ca28b7b.jpg)

!](http://tof.canardpc.com/view/7cbae3b5-7a87-4f84-9d15-5d1ffd17f5d4.jpg)

!](http://tof.canardpc.com/view/0307479f-f8f3-4fae-8100-9ed7387dd4a0.jpg)

!](http://tof.canardpc.com/view/e5f32d40-6dde-4986-a647-e3da501ca175.jpg)

!](http://tof.canardpc.com/view/4da0c992-4d75-478b-b63a-95b4102ef127.jpg)

!](http://tof.canardpc.com/view/51a2c0e2-6382-443d-a5be-9551cc7535af.jpg)

!](http://tof.canardpc.com/view/1991fce1-4551-4a56-a69b-b716be67847a.jpg)

和 EXT4 相比, BtrFS 的性能几乎全线溃败。对于我等上网看新闻看视频听音乐的桌面用户来说,EXT4 是不二之选呀。
大家也可以看看这篇文章的评论,想法也是和我的一样的。
本想等 13.2 出来了上 BtrFS,现在已经没这个想法了。。。

Opensuse 13.2
#2

如果真这么渣,13.2 为何还要默认使用呢?难道他们就没测试吗??-_-‖

#3

表示对很多文件系统都不熟悉,一般都直接用 ext4 就好了。没什么好纠结的。

#4

默认使用的不代表就是性能最好的,还有很多考量因素,比如看中内置加密,压缩,快照等,这些对于企业用户来说非常吸引人的特性,却并不是桌面用户所看中的。
最关键的,性能好不好,咱别拿默认说事,咱拿数据说事行不?你可以拿其它的性能数据来嘛,我又不是 ext4 的粉,谁的性能好我就用谁。

来自我的 P98 3G 八核 (A3HY) 上的 Tapatalk

#5

我也不用 BtrFS。笨脑子想 copy-on-write 这种特性性能肯定永远不如直接 write 快啊。

我觉得选文件系统跟自己需求有关系吧。

BtrFS 现在说它是”新“文件系统肯定不合适了,它已经稳定了,但是不代表稳定你就一定非要用啊,稳定的文件系统那么多呢…

openSUSE 13.2 是系统分区 BtrFS,配合 Snapper 回滚,最大程度保障系统稳定;/home 分区用 xfs,据 factory 列表的一个讨论说是 xfs 以前有 bug 但现在修好了,而且”小文件“的性能比 ext4 强。

但我觉得这就是最早我开始用 Linux 时候的那种思路又还阳了吧。大概 SUSE 10.0 的时候,网上的 Linux 分区方案简直不能看,连 /var /tmp 什么的都单独分区,还用什么 ReiserFS 文件系统啊。还有各种”文件系统“对比帝,简直是被 Benchmark 上身了。

反正我是返璞归真了。13.2 正式发布的时候把根分区一转 Btrfs,/home 还是用我的 ext4。

其实个人觉得,一般新人就全 ext4 就好了么,因为就算 BtrFS 带备份,还有 Snapper 回滚,有几个新手懂得如何去用呢?他们宁可重装也不会主动学那技能的吧。

Has Likes
#6

我刚在本机也测试了下,当然工具是很不专业的。

系统:openSUSE-13.1-x86_64
内核:3.16.3-1.gd2bbe7f-desktop

测试方法:首先在移动硬盘新建两个 10 G 的分区,并格式化为 ext4 和 btrfs ,然后依序各测试两次,测试结果如下:

ext4 分区:
第一次测试:

!](http://image.suse.org.cn/image.php?di=8711)

第二次测试:

!](http://image.suse.org.cn/image.php?di=SCK1)

btrfs 分区:
第一次测试:

!](http://image.suse.org.cn/image.php?di=QGNH)

第二次测试:

!](http://image.suse.org.cn/image.php?di=JNCG)

如图所示,两种分区格式的测试结果并没有太大的差别,如果性能真有成倍的差距(如楼主的柱状图),那就太夸张了。

PS:我英文为 0, 其实根本看不懂柱状图测试的是什么内容 :sweat:

#7

那个测试好像包括拷贝 5000 个文件、编译、创建文件之类的吧。

我怀疑你这个是不是被移动硬盘本身的速度给限制住了,比如说 USB 的速度限制?

但如果在移动盘内部拷贝我觉得应该不会被这个限制。

总之还有待检验。我是不会选择这个分区的。 我对日志、回滚没有需求。

#8

嗯,我研究了下,他那个确实是测试了 N 多种内容。我装了个 phoronix 的测试工具,但测试一半就放弃了,因为我没有 ext4 的根分区来进行对比测试。另外他那个测试是用的 Ubuntu14.10,不知道是否对测试结果有影响

#9

不同的内核编译参数(文件系统相关)应该会对文件系统性能产生影响。所以 ubuntu 和 openSUSE 应该可能是不一样的。
非常期待 @gmg137 的测试结论啊,加油!

#10

可以给 btrfs 设置挂载选项,如 compress=lzo(加快读写小文件,并节省空间)

#11

我小白我承认看到文章开头时有一股把系统格了重来的冲动:P
日常用起来也没感觉到太大的差异。

#12

这是观念的问题:性能 / 速度不是一切。。。

Btfs 和 XFS 同属于日志文件系统,可以通过快照迅速恢复,这点有助于提高系统的可靠性。速度不如 Ext4 和 Ext3 这一点早就已经被大家熟知了,尤其是在处理大量小文件时。

openSUSE 官方对此是非常清楚的,并且早就做出了解释。可以参见未翻译完成的 openSUSE 官方文档。

#13

从来不敢用btrfs
来自1%的 Windows Phone Lumia 930

#14

实际上我一直在用 btrfs,只在根分区用,boot 和 home 分区不用,日常使用并没有感觉到性能上的差距,反而 snapper 工具给我带来了方便

#15

xfs 小文件的性能还是惨不忍睹啊 ,一个 android 的 source code 目录
btrfs time git status 是 3min
xfs time git status 是 13min

我现在 home 是 xfs 放个 android 项目 git 一下就一种想死的感觉。

#16

那估计用 IDE 管理 xfs 上的 Java 工程也会想死的。
所以还是老实用 ext4 啊

#17

个人用 openSUSE 42.1 使用,ext4,BrtFS 和 XFS 哪个文件系统比较好?

#18

个人还是推荐 EXT4

Has Likes
#19

还是 ext4 可靠稳定,个人毕竟不同于服务器

#20

运行速度什么的倒是没感觉,就是感觉 BtrFS 有点占空间比较厉害。有时候更新一遍软件,总体也就是几百 M,但是硬盘空间基本上都会减少一倍以上,然后过几天再看硬盘又空出来不少。