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

前回の記事「MongoDBをext3で使ったら死んだ」の続きです。

ファイルアロケーションについてはext3よりext4の方が高速であることは既に触れました。
では具体的に何倍速度差があるのでしょうか?
気になったので実験してみました。

他の条件を全く同じにしてext3と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編)
カテゴリ:

人気記事