Linux文件系统选择

通过综合使用多种标准文件系统Benchmarks对Ext3, Ext4, Reiserfs, XFS, JFS, Reiser4的性能测试对比,对不同应用选择合适的文件系统给出以下方案,供大家参考。文件系统性能测试数据见附表。
1、大量小文件(LOSF, Lost of small files)I/O应用(如小图片)
Reiserfs(首选), Ext4文件系统适合这类负载特征,IO调度算法选择deadline,block size = 4096, ext4关闭日志功能。
reiserfs mount参数:-o defaults, async, noatime, nodiratime, notail, data=writeback
ext4 mount参数:-o defaults, async, noatime, nodiratime, data=writeback, barrier=0
关闭ext4日志:tune2fs -O^has_journal /dev/sdXX
 
2、大文件I/O应用(如视频下载、流媒体)
EXT4文件系统适合此类负载特征,IO调度算法选择anticipatory, block size = 4096, 关闭日志功能,启用extent(default)。
mount参数:-o defaults, async, noatime, nodiratime, data=writeback, barrier=0
关闭ext4日志:tune2fs -O^has_journal /dev/sdXX
 
3、SSD文件系统选择
EXT4/Reiserfs可以作为SSD文件系统,但未对SSD做优化,不能充分发挥SSD性能,并影响SSD使用时间。
Btrfs对SSD作了优化,mount通过参数启用。但Btrfs仍处于实验阶段,生产环境谨慎使用。
JFFS2/Nilfs2/YAFFS是常用的flash file system,在嵌入式环境广泛应用,建议使用。性能目前还未作测试评估。
 
 
简单分析一下选择Reiserfs和ext4文件系统的原因:
1、Reiserfs
 大量小文件访问,衡量指标是IOPS,文件系统性能瓶颈在于文件元数据操作、目录操作、数据寻址。reiserfs对小文件作了优化,并使用B+ tree组织数据,加速了数据寻址,大大降低了open/create/delete/close等系统调用开销。mount时指定noatime, nodiratime, notail,减少不必要的inode操作,notail关闭tail package功能,以空间换取更高性能。因此,对于随机的小I/O读写,reiserfs是很好的选择。
 
2、Ext4
 大文件顺序访问,衡量指标是IO吞吐量,文件系统性能瓶颈在于数据块布局(layout)、数据寻址。Ext4对ext3主要作了两方面的优化:
 一是inode预分配。这使得inode具有很好的局部性特征,同一目录文件inode尽量放在一起,加速了目录寻址与操作性能。因此在小文件应用方面也具有很好的性能表现。
 二是extent/delay/multi的数据块分配策略。这些策略使得大文件的数据块保持连续存储在磁盘上,数据寻址次数大大减少,显著提高I/O吞吐量。
  因此,对于顺序大I/O读写,EXT4是很好的选择。另外,XFS性能在大文件方面也相当不错。
 
附表:文件系统性能测试数据

 

Testing Host:       
CPUGenuine Intel(R) 2.13GHz 4 cores       
MEM4GB       
DISKSAS 146.8GB * 4       
 /dev/sdbExt3disable journaldefaults,async,noatime,nodiratime  
 /dev/sdcExt4disable journaldefaults,async,noatime,nodiratime,data=writeback,barrier=0
 /dev/sddXFShas_journaldefaults,async,noatime,nodiratime,barrier=0 
 /dev/sdeReiser4has_journaldefaults,async,noatime,nodiratime  
 /dev/sdereiserfshas_journaldefaults,async,noatime,nodiratime,notail,data=writeback
 /dev/sdeJFShas_journaldefaults,async,noatime,nodiratime  
 /dev/sdebtrfshas_journaldefaults.async.noatime,nodiratime,data=writeback 
         
NO.Test PointsExt3Ext4ReiserfsXFSJFSReiser4Btrfs
1filesystem creation s37.38122.3333.7441.7861.8582.758 
2filesystem mounting s0.0240.0390.2990.0790.0683.524 
3filesystem unmounting s0.0110.020.0740.0250.0480.037 
4copy a large file (4GB) s35.48637.22730.60543.54730.3242.17 
5recopy the large file s56.91957.52659.89359.31555.65457.925 
6remove the large file s3.1260.2952.1780.0160.0184.137 
7copy linux kernel archive.tar s0.1030.1430.5740.0940.5520.564 
8extract files from kernel.tar s42.6784439.68157.37470.99347.538 
9create kernel.tar from linux source s32.73339.14539.30539.16737.9243.828 
10compile linux kernel s561.834566.474557.429571.3551773.143828.028 
11copy kernel file tree s190.701197.191194.864217.355255.777185.406 
12recopy kernel file tree s66.272170.643100.67143.517194.89879.247 
13remove kernel file tree s13.7193.7833.66150.07292.06833.2 
14list all files for kernel source(tree) s15.96115.53920.71715.81829.13915.611 
15file search in kernel source (find) s0.1190.90.3312.5150.7915.913 
16create 1 million files s1000.969986.712940.2011128.2441111.5092462.65 
17recopy the 1 million files s4783.069595.82859.252972.6711005.0571734.48 
18remove the 1 million files s3257.384396.3274.917735.0482395.4171165.314 
19dd read IOPS (bs=1KB,4GB) s26.79527.25726.03626.15825.94826.485 
20dd write IOPS (bs=1KB,4GB) s27.00626.46132.57726.16429.203126.906 
21dd read BW (bs=1MB,4GB) s26.78423.55225.99926.23328.63526.541 
22dd write BW (bs=1MB,4GB) s29.42926.12330.6424.68331.44631.925 
         
 Postmark (postmark.conf)       
23transaction /s333384384113166416 
24read MB/s27.9820.4224.379.6910.6430.22 
25write MB/s87.3263.7276.0630.2333.2194.31 
         
 Randomio (randomio bigfile 10 .25 .01 2048 60 1)(X表示Randomio不支持该文件系统)   
26create 4GB file MB/s16716616416815651.3 
27random io/s372.1382.3378.8521.5382.7X 
28random read latency ms26.926.226.613.226.3X 
29random write latency ms26.52625.937.125.6X 
30random read latency std dev ms17.916.716.613.116.3X 
31random write latency std dev ms15.814.914.538.814.3X 
         
 Bonnie++ (-d /cacheX -s 7920 -x 1 -u root)(+++++表示未获得准确测试结果)   
32read KB/s155161150029160919159242155811144079 
33write KB/s155150150635142801159393139770107923 
34seek /s812.9816.7816806.4730.7775.9 
35sequential create /s7374(+++++)29088710136610031 
36sequential delete /s(+++++)(+++++)251606354703123 
37random create /s7558(+++++)281787455095015 
38random delete /s25292(+++++)247235592873365 
         
 IOZone (-Razc -s 8192m -y 4k|1m -q 4k|1m -i 0 -i 1 -i 2 -b iozone.xls)    
39sequential read with 4KB KB/s       
40sequential write with 4KB KB/s (测试用时太长,暂未完成)  
41random read with 4KB KB/s       
42random write with 4KB KB/s       
43sequential read with 1MB KB/s156790153432160142159591161785143197 
44sequential write with 1MB KB/s155928156378131246162226143348138672 
45random read with 1MB KB/s1010049806010284010122510110095864 
46random write with 1MB KB/s1105371022459792410714011973397941 
         
 FileBench (load)       
47randomread       
48randomwrite       
49varmail            
49iops /s1292.331921.6581276.035710.653692.282772.895 
 BW MB/s4.26.34.32.42.32.6 
 webproxy           
50iops /s14868.18916379.94214984.046156.1592830.0368705.437 
51BW MB/s55.560.85625.112.334.7 
 videoserver           
 iops /s395.147392.849391.85391.65391.74391.048 
 BW MB/s97.5227.996.7227.696.7

 

转载自:http://blog.csdn.net/liuaigui/article/details/5521024/

转载于:https://www.cnblogs.com/knitmesh/p/5444402.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值