Linuxファイルシステムベンチマーク第2回 ext3,ext4,JFS,ReiserFS,XFS,NILFS2

Crystal_Clear_mimetype_log

Linuxファイルシステムベンチマーク第2回 ext3,ext4,JFS,ReiserFS,XFS,NILFS2ext3ファイルシステムは、機能面・信頼性・性能面で非常にバランスの取れたファイルシステムであり、多数のディストリビューションで「標準のファイルシステム」として採用・サポートされてきました。現時点(2009年時点)では事実上、「Linux標準ファイルシステム」の地位を築いていると言っても過言ではありません。

しかしながら、Linux標準ファイルシステムのext3だけではなく、他ファイルシステムへの対応やサポートを売りにするディストリビューションも数多く登場しています。また、ext4やbtrfs等、次のLinux標準ファイルシステムと目されるファイルシステムも、現在、非常に活発に開発が進められています。このような状況の中、ext3から他のファイルシステムに乗り換える価値、他のファイルシステムを採用する価値はどの程度あるのでしょうか。

Linuxファイルシステムベンチマークの第2回は、カーネル2.6.30で有力な選択肢となる6つのファイルシステム、ext3、ext4、JFS、ReiserFS、XFS、NILFS2を対象に「bonnie++」を用いた性能ベンチマークを行い、複数のファイルシステムを性能面から比較してみました。

要旨

  • Windowsではファイルシステムの現実的な選択肢はNTFSかFATのみである。これに対して、Linuxでは複数のファイルシステムの中から用途に応じたファイルシステムを選択することができる。
  • Linuxではファイルシステムを選択可能であるにも関わらず、ファイルシステムの選定基準として公開されている情報は少ない。
  • ファイルシステムのベンチマークツール「bonnie++」を用いて、6つのファイルシステム(ext3, ext4, JFS, ReiserFS, XFS, NILFS2)の性能ベンチマークを行い、ベンチマーク結果を数値 及び グラフで公開する。
  • シーケンシャルアクセスの性能比較では、ext4、XFS、ReiserFSの性能の高さが目立つ結果となった。シーケンシャルアクセスや連続ブロック単位のI/Oを多発するソフトウェア、例えば、OracleやPostgreSQL等のデータベース(DBMS)では、ext4、XFS、ReiserFSの採用によってパフォーマンスの向上を期待できる可能性がある。
  • ランダムアクセス 及び メタデータ操作の性能比較では、ext3、ext4、ReiserFSが全体のバランスが取れており、総合的に性能の高さが目立つ結果となった。ランダムアクセスや小さなファイルのI/Oを多発するソフトウェア、例えば、Postfixやqmail等のメールサーバ(MTA)では、ext3、ext4、ReiserFSの採用によってパフォーマンスの向上を期待できる可能性がある。
  • メタデータ操作(ファイル削除、ファイル情報の取得)の性能比較では、NILFS2の性能の高さが目立つ結果となった。他のベンチマークの項目でも性能面で致命的と言える測定結果は出ていない。スナップショットの取得等、NILFS2の機能面のメリットを考えると、今後、Sambaファイルサーバ等のファイルシステムとして、NILFS2の採用が有力な選択肢になってくると考えられる。

ベンチマーク実行条件

ベンチマーク実行環境
  • HP DL360 G4
    Xeon 3.0GHz 1MB L2
    1GB Memory , PC2700
    36GB 15K HDD * 1 , Ultra 320 SCSI (型番:BF03688284)
  • Ubuntu 9.10 Alpha 2 (2.6.30-8-generic #9-Ubuntu SMP)
  • bonnie++ 1.03c
対象ファイルシステム

今回の性能ベンチマークでは、次のファイルシステムを対象としました。なお、各ファイルシステムのmount時にマウントオプションは指定せず、デフォルト値でmountしています。(マウントオプションの性能面での最適化は、今後の課題です。)

  • ext3
  • ext4
  • JFS
  • ReiserFS
  • XFS
  • NILFS2
bonnie++ 実行時のコマンド、実行結果の集計方法
  • apt-get で bonnie++ をインストール
  • $ sudo apt-get install bonnie++
    
  • bonnie++ 実行
  • $ bonnie++ -d /mnt/filesystem/tmp/ -n 256:0:0:16
    

    -nオプションを「-n 256:0:0:16」と指定して、「ファイル数 256*1024、ファイルサイズ 0byte、ディレクトリ数 16」の条件下で、メタデータ操作のベンチマークを実行する。
    (参考 : bonnie++の使用方法

  • ベンチマーク結果の集計
  • 合計10回 実行して、最大・最小の結果それぞれ1回分を除く 計8回の平均値を算出する。

ベンチマーク結果

シーケンシャルアクセス

シーケンシャルアクセス 性能比較グラフ
 

ランダムアクセス

ランダムアクセス 性能比較グラフ
 

メタデータ操作 1 (ファイル作成、ファイル削除)

メタデータ操作 1 (ファイル作成、ファイル削除) 性能比較グラフ
 

メタデータ操作 2 (ファイル情報の取得)

メタデータ操作 2 (ファイル情報の取得) 性能比較グラフ
 

集計値
FileSystemmount
options
Sequential OutputSequential InputRandom
Seeks
Per ChrBlockRewritePer ChrBlock
K/secK/secK/secK/secK/sec/sec
ext3-38,57164,08120,06241,24361,193577
ext4-39,85992,98225,58843,11085,421544
JFS-11,05511,30224,25142,27183,750568
ReiserFS-37,25090,74323,76142,00981,217687
XFS-41,11594,24125,41443,12585,770550
NILFS2-22,71241,98023,22141,32148,709568

 

FileSystemmount
options
Sequential CreateRandom Create
CreateReadDeleteCreateReadDelete
/sec/sec/sec/sec/sec/sec
ext3-37,739333,33545,94529,480387,4092,178
ext4-31,738318,83142,64425,717372,2252,719
JFS-1,370421,483440474393,470193
ReiserFS-26,681381,08125,58026,158391,7931,706
XFS-2,864468,0446,3892,835376,904613
NILFS2-3,766488,76495,0123,992394,5405,375

 

ベンチマーク結果考察
  • シーケンシャルアクセスの性能比較では、ext4、XFS、ReiserFSの性能の高さが目立つ結果となりました。シーケンシャルアクセスや連続ブロック単位のI/Oを多発するワークロードに対しては、ext4、XFS、ReiserFSの採用によって性能向上を期待できる可能性があります。

    シーケンシャルアクセスや連続ブロック単位のI/Oを多発するソフトウェアの代表格は、OracleやPostgreSQL等のデータベース(DBMS)です。

  • ランダムアクセス 及び メタデータ操作の性能比較では、ext3、ext4、ReiserFSが全体のバランスが取れており、総合的に性能の高さが目立つ結果となりました。ランダムアクセスや小さなファイルのI/Oを多発するワークロードに対しては、ext3、ext4、ReiserFSの採用が有力な選択肢であると考えられます。

    ランダムアクセスや小さなファイルのI/Oを多発するソフトウェアの代表格は、Postfixやqmail等のメールサーバ(MTA)です。

  • メタデータ操作(ファイル削除、ファイル情報の取得)の性能比較では、NILFS2の性能の高さが目立つ結果となりました。他のベンチマークの項目でも性能面で致命的と言える測定結果は出ていません。スナップショットの取得等、NILFS2の機能面のメリットを考えると、今後、Sambaファイルサーバ等のファイルシステムとして、NILFS2の採用が有力な選択肢になってくると考えられます。
補記事項
  • Ubuntu 9.04で発生していたext4の不具合(bonnie++をext4ファイルシステムの領域に対して実行すると、ベンチマーク実行中にOSがフリーズしてしまう)は、Ubuntu 9.10(Alpha 2)では解消されていることを確認しました。
  • 本ベンチマークの実行時には、「1日・1ファイルシステム」と「計5回まで」を実行対象の上限に設定しました。そして、間には必ずサーバをシャットダウンした上で、12時間以上のクーリング期間を設けています。これは、HDDが高熱になることによるH/W故障を避けるためと、HDDへの連続した負荷掛けによって次第にHDDが“タレる”(I/O性能が下がる)ことを防ぐためです。
  • 私は経験的に、HDDには「機嫌が良い日/機嫌が悪い日」があることを知っています。環境条件を可能な限り揃えたとしても、ベンチマークの実行結果に±20%程度の誤差が生じることはよくあることです。

    本ベンチマークの実施時には、誤差による影響を可能な限り低減しようとしましたが、その苦労にも関わらず、本ベンチマークの実行結果は完全と呼べる代物ではありません。皆様の環境では、たとえそれが本ベンチマークの実行環境に非常に類似した環境であったとしても、異なったベンチマークの実行結果が出る可能性があることに十分留意して下さい。

関連記事

Linuxファイルシステムベンチマーク第1回 ext2,ext3,JFS,ReiserFS,XFS,NTFS
Linux Tips – bonnie++の使用方法
HDDベンチマーク手順+性能測定結果一覧 (hdparm,dd,bonnie++)
Linuxファイルシステム比較 – ディスク容量使用効率編
RAMディスク(/dev/shm)のIO性能をチューニングに活用する方法
SSD I/Oブロックサイズの調整によるチューニング効果検証 (DC S3700編)
 
「Linux」カテゴリーの記事一覧

参考になるサイト

SUSE Linux Enterprise – Linuxファイルシステムの概要
SUSE Linux Enterpriseでサポートされているファイルシステムに関する説明ページ。
ext3、ReiserFS、XFS、BtrFS、OCFS2、各ファイルシステムの推奨用途が記載されている。

@IT – Linuxファイルシステム技術解説
ext3、ReiserFS、JFS、XFS、各ファイルシステムについてそれぞれの特徴を実装面から詳細に解説。

Open Tech Press – Linuxのファイルシステムとファイルの概要
Linuxで選択可能なファイルシステムの中から、適切なファイルシステムを選択するポイントを解説。

MIRACLE LINUX – XFSとExt3では、実際どれくらいパフォーマンスに差があるのでしょうか?
XFSとext3のパフォーマンス比較グラフを掲載。ベンチマークツールにbonnie++を使用している。