mongoDBのデータサイズ
6月1日のエントリで書いた件。PostgreSQLからmongoDBへデータを移行していると、途中でこんなエラーがでて停止してしまう。
Wed Jun 1 16:46:06 [conn26] mmap failed with out of memory, if you're using 32-bits, then you probably need to upgrade to 64
これはどうも32bitOS上でのmongoDBのデータサイズ上限の模様。上限約2GBなんだと。mongodb.org上のドキュメントにそのような記述がありました。2GBって小さすぎるな。64bitOS上で動作させることをおすすめしますって。幸いなことに、このスクリプトを動作させるべき本番環境は64bit環境なので、問題なく動作しました。
ところで、上記エラーがでたmongodbですが、show dbsや、db.remove()なんかが一切きかなくなっちまいました。やろうとすると、メモリがとれないぞってエラーが。
Mon Jun 6 14:13:11 [conn3] mmap() failed for /data/db/test.0 len:67108864 errno:12 Cannot allocate memory Mon Jun 6 14:13:11 [conn3] mmap failed with out of memory, if you're using 32-bits, then you probably need to upgrade to 64
強制的にデータを削除ってこともできない。しばらく考えた結果、一旦mongodを終了して、--repairオプションをつけてリペアしてから改めて起動して解決しました。
$ /usr/bin/mongodb --repair