Linux ディレクトリ操作ベンチマーク

同一ディレクトリにひたすらファイルを作成した場合のテスト結果。
ファイルシステムディレクトリエントリの操作の差異を見るのが目的。

Countから+-500での区間で、秒あたりの1024バイトファイル作成の平均速度を算出。
OSはLinux2.6.9カーネル(CentOS4)を使用、mkfsパラメータは基本的にデフォルト。

Count ext3 jfs reiserfs vxfs xfs zfs(FUSE) ext3(dir_index)
1000 20357.83 17349.33 13852.14 5646.72 14165.88 2215.22 26181.51
5000 6560.39 13371.88 12187.68 3812.46 12643.69 2150.68 25686.54
10000 3460.40 15375.86 12055.02 2524.34 12004.82 2310.40 28825.25
25000 1359.61 9993.89 14794.83 1247.33 11089.18 2246.00 28219.77
50000 581.20 11556.69 11734.75 733.46 10042.58 2274.17 28576.22
75000 472.91 12377.14 13421.04 429.99 8608.43 2361.74 22985.89
100000 331.67 9821.74 12142.41 380.51 7443.29 2310.40 25426.65

Symantec(元Veritas製品)が売っている商用のvxfsが意外な事に遅いという結果に。
DBとかでよく使われているし、ブロック割り当ては最適化されていても
ディレクトリエントリの操作は、それほど最適化されていないのかも。
何かしらのオプション指定で最適化されたりするかもしれないけど。


reiserfsとかは確かに性能良いんだけど、近くの人がバグ踏んでデータ飛ばした
のを見ていると流石に使うのに躊躇がある。
zfsFUSE経由なので参考数値、傾向としてはノード増加での落ち込みも無く悪くない感じ。


素のext3はリニアに遅くなっていくのが解って面白い、dir_index付きの場合は
hashとbtreeなので効果が目に見えて解る、というかこのケースでは最速。


ということで、某N社ストレージのベースにもなっているxfsとdir_index付きext3
暫くロードテストに掛けてみる事に決定。
xfsのテストはするにしろ、当面はdir_index付きext3で十分かなという感じ。