ページ

2010年11月9日

MongoDBのベンチマーク@おうちのiMac

Membaseのベンチマークが遅かったのですが、VMWareのせいかも?とか、思わなくもないので、MongoDBでも同様におうちのiMacでも計測してみました。コードは、以前の記事のものをほぼ、そのまま使用しています。

で、早速結果のグラフです。

左側はサーバをローカルのマシン上で動かしています。左側はVM上で動かしてます。ローカルではmembaseは動かしていません。ごめんなさい、ごめんなさい。

まず、フェッチのスピードですが、MongoDBとMembaseでほとんと違いがありません。MacBookAirで動かしたときは、MongoDBは0.4秒ぐらいでしたが、それにくらべて速いです。MacBookAirで計ったときのmemcacheとの相対比では2から3倍でしたが、ほぼ同じです。ローカルでは0.2秒でmemcacheに比べて約3倍、でも、vm上だと10倍の開きがあります。
localのフェッチの時間よりVM上のものが1.5倍ぐらい遅いです。CPUというよりディスクIOの違いかもしれません。でも、インサートはlocalよりVM上のものの方が速かったりします。意味がわかりません。不思議です。memcacheもやっぱりローカルのものよりVM上のもののほうが速いです。これもわけわかめ。vm上のものが速くなる理由は全く見つかりません。コンパイラの差?Mac Portsだめ?Gentooのようにコンパイラオプションをいじりまくって最速を目指すべき?

うーん、解釈に困るデータです。ローカルのデータだけにしとけばよかったです。仮想環境は難しいです。

まとめると、MongoDBは検索はmembaseと同じぐらいの遅さで、インサートに関しては、membaseよりはかなり速いです。でも、memcacheに比べると十分遅いので、単純にmemcacheの置き換えにはむきません。Mongoの検索のスピードはmemcacheにくらべて環境に依存して3から10倍遅くなるので、インフラ周りなどで注意が必要です。いずれにしても、membaseは機能の割には遅いので、使わないのがいいでしょう。

iMacのHDDをSSDにして動作を見てみたいと思う今日この頃です。redisのベンチマークもしろという声も聞こえてきますが、めんどいし、もっとやりたいことがあるので、ベンチマークそろそろお開きです。

0 件のコメント: