MongoDBをext3とext4でベンチマークしてみたらext4が圧勝だった。

  • マシン:ニフティクラウド サーバタイプmini [1vCPU(1GHz)・512MB]
  • ディスク:Disk200 B
  • OS:CentOS release 6.2 (64bit)
  • MongoDB: mongodb-linux-x86_64-1.6.4

実験方法

マシン内で
  • mongod(サーバ)を1プロセス起動する。
  • mongoシェルを3つ立ち上げる。
mongoシェルから次のようなsaveクエリを無限ループで投げ続ける。
> var x = { a : new Date() , b:(new Date()).toString(), c: 'hoge hoge foobar' , d: 1234567890 };
> while (1) { db.foo.save({ x : x, t : new Date()}) }
サーバのログファイルに書かれたアロケーション所要時間を記録。
Wed Apr 25 04:29:31 done allocating datafile /data/db/test.5, size: 2047MB,  took 0.468 secs

ファイルアロケーションに要した時間

ext3ext4
64MB0.3秒0秒
128MB1.8秒0秒
256MB13.0秒0秒
512MB20.9秒0秒
1GB46.9秒0.49秒
2GB106.3秒0.47秒

な、なんとうことでしょう・・・!
200倍もの速度差が出てしまいました。

1台のマシンでサーバとクライアントを動かしているから負荷テストのやり方としては正しくないのかもしれませんが、 それにしても圧倒的な差です。

結論

MongoDBを使うならぜひext4を!
(ステマではない)

続きを書きました

[続報]MongoDBをext3とext4でベンチマークしてみた(mongod 2.0編)
カテゴリ: