几种linux 文件系统的性能比较

openkk 12年前

最近项目遇到性能瓶颈,写盘时候CPU占用率比较高,打算从 SATA 硬盘升级到 SAS 硬盘,也希望能从系统软件方面改进一下,从几篇不错的文章了解到常用的 Linux 文件系统之间的性能差异,评测结果也比较一致,推荐这篇(http://www.debian-administration.org/articles/388)结果较详尽(但是2006的文章,过去这么久,评测结果可能有所变化)。

综合各评测结果看来,几种文件系统的性能表现如下:


Ext3 ReiserFS JFS XFS
可用空间大小 92.77% 99.83% 99.82% 99.95%
创建分区速度(秒)
20G分区
14.7
2.2
(CPU 59%)
1.3
(CPU 74%)
0.7
mount速度(秒)
20G分区
0.2 2.3 0.2 0.5
unmount速度(秒)
20G分区
0.2
(CPU 37%)
0.4
(CPU 14%)
0.2
(CPU 27%)
0.2
(CPU 45%)
拷贝大文件(秒)
700M ISO Imag(CPU 46% – 51%)
38.2 41.8 35.1 34.8
第二次拷贝同样的文件(秒)(CPU 38% – 50%) 37.3 43.9 39.4 33.1
删除同样的ISO文件(秒) 2.5
(CPU 10%)
1.5
(CPU 49%)
0.02
(CPU 10%)
0.02
(CPU 10%)
拷贝大文件树(秒)
7500个文件, 900个目录, 1.9GB(CPU 27% – 36%)
158.3 172.1 180.1 166.1
第二次拷贝同样的大文件树(秒) 120 136.9
(CPU 45%)
151
(CPU 29%)
135.2
删除同样的大文件树(秒) 22
(CPU 15%)
8.2
(CPU 86%)
12.5
(CPU 15%)
10.5
(CPU 65%)
List同样的大文件树(秒) 2.5
(CPU 35%)
1.4
(CPU 71%)
3.1
(CPU 35%)
1.8
(CPU 70%)
搜索同样的大文件树(秒) 4.6
(CPU 6%)
0.8
(CPU 36%)
5
(CPU 6%)
2.8
(CPU 10%)

绿色:效率最高,蓝色:效率高,红色:效率最差

———————————————————————————————————————

鉴于多数现有的评测“年代久远”,几年来软件和硬件都有发展,因此我还是自己做了一个简单的评测。

由于 ReiserFS 作者的前途渺茫,故只针对 Ext3,XFS,JFS 来评测,评测项目仅针对大文件树的操作,不测试CPU占用率。测试机使用 Virtualbox虚拟机,环境如下:

宿主机配置如下:
CPU : Q9550 四核2.8G
内存 : 4G
硬盘 : SATA 500G

虚拟机配置如下:
CPU: 单核
内存:384M
硬盘:8G


Ext3 JFS XFS
拷贝/usr目录到/root/usrx(秒)
ext3已运行很多天,
jfs和xfs系统刚装,
拷贝时虚拟硬盘还要自动扩展大小,
因此jfs和xfs硬盘会多一些性能损耗
158 145 123
第二次拷贝/usr目录(秒) 153 109 91
删除/root/usrx目录(秒) 3.5 10 14.6
第二次删除/root/usrx目录(秒) 6.2 12 14.9

从 这份测试结果来看,XFS对大文件树的拷贝性能似乎从较高变成最高了,而且遥遥领先,但删除大文件树的速度则是最慢的。删除文件虽然是最慢的,但在大多数 系统中删除操作较少,而且删除动作的速度较拷贝的速度要快一个数量级,这样说来整个系统由于删除动作带来的性能损耗有限,因此删除动作的性能损耗可以接 受。

———————————————————————————————————————

另外推荐一篇文件系统的评测文章:

http://linuxgazette.net/122/TWDT.html#piszcz  (有多张统计图,直观)