SDカードベンチマーク

前々からSDカードのファイルフォーマットは何が良いのか疑問だったのでbonnie++を走らせてみた。ちなみに書き換え回数に限りのあるフラッシュデバイスベンチマークを実行するのは自殺行為でしかない。良い子はマネしないでね。

  • Machine: SL-C700
  • Kernel: 2.6.26-r9.1 + CONFIG_CPU_FREQなし + REISERFS/JFS/XFS有効
  • bonnie++ 1.03c
  • Sandisk 2.0GB SD
  • 全てマウント時に async,noatime 適用

SizeSequential OutputSequential InputRandom Seeks
Per ChrBlockRewritePer ChrBlock
K/sec%CPK/sec%CPK/sec%CPK/sec%CPK/sec%CP/sec%CP
ext2300M10598113532777515539317426483.55
ext3300M10238213111076261558931746655.83
jfs300M1014731386377941581941752682.04
reiserfs300M10178513761877461559941749785.86
xfs300M993721380577361561941744775.04
filesSequential CreateRandom Create
CreateReadDeleteCreateReadDelete
/sec%CP/sec%CP/sec%CP/sec%CP/sec%CP/sec%CP
ext21615198++++++++223399915398++++++++42988
ext316182862++++++++6437150755++++++++4076
jfs1644529790647202610812413240432
reiserfs1696986++++++++110294102295++++++++84080
xfs16107203865421041810921436650304

感想。

  • シーケンシャルアクセスの速度は意外にも読み書きともにほとんど差異なし。
  • CPU使用率も考慮するとシーケンシャルアクセスはjfsとxfsあたりが良さげ。
  • メタファイルになると一転してext3とreiserfsのスコアが高い。が、readの項目が"+++++"となっていてよくわからん。
  • ARM系でxfsは一旦unmountするとmountできなくなるという致命的バグあり。調べたところ↓で修正パッチが上がっている。なおベンチ結果はパッチ未適用。(というか取得後に気付いた)

ちなみにSSDだとNILFSが(結果的に)最強という話がでているが、2.6.26時点ではまだ組み込まれていないし、そもそも「Architecture: Intel-compatible x86, x86_64 」ということらしいのでムリ。

追記。パッチを適用してxfsだけ取り直してみたがほとんど差異なし。