ページ

2010年12月13日

MongoDBのメモリの使用量

とあるところで、MongoDBを使って遊んでいます。一秒間に数個のレコードをインサートし続けています。一時間に一回、集計用に一時間分のデータをMongoDBのMap Reduceを使って処理しています。そのときのメモリの使用量(psで出力された結果のRSSの部分)を一分おきにとって、グラフ化したものがこのグラフです。

最初の小山はあんまり意味がないでしょう。200M byte付近から300M byteぐらいに使用量が急激に上がっているタイミングがMap Reduceで集計している時です。データをとるためにMongoDBを再起動したり、べつのことをちょっとだけしているので、1時間の完全なデータではないですが、50分ぐらいのデータにはなっていると思います。

グラフからインサートを延々と繰り返してもさほどメモリの使用量は増えていません。データの参照もそれほど複雑なことをしたり、負荷があるわけでもありません。

グラフの右の方でまたメモリの使用量が上がっています。大体40Mbyteぐらい増えています。これもMapReduceで集計しているタイミングです。Map Reduceは基本的に、集計対象とするデータ量に応じてメモリをかなり消費するようです。

悲しいことは、これを動かしてるサーバのメモリがとっても少ないので、メモリが足りなくなってしまうことです。

0 件のコメント: