3

メモリが不足しているため、mongod は自動的にシャットダウンします。(デビアン)

~# reboot
~# mongo
MongoDB shell version: 2.0.6
connecting to: test
Thu Aug  2 13:12:26 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:8 4
exception: connect failed
~# mongo 127.0.0.1:27017
MongoDB shell version: 2.0.6
connecting to: 127.0.0.1:27017/test
> use database
> db.repairDatabase()
{
        "errmsg" : "exception: file /var/lib/mongodb/$tmp_repairDatabase_0/datab      ase.1 open/create failed in createPrivateMap (look in log for more information)"                            ,
        "code" : 13636,
        "ok" : 0
}
  1. エラー: サーバーに接続できませんでした ... 構成のエラーです。理由がわかりませんか?
  2. /var/lib/mongodb/$tmp_repairDatabase_0 および /var/lib/mongodb/_tmp は一時フォルダーですか? それらを削除できますか?

データベースは正常に動作していますが、1 週間前の私の基地と同じことが起こるのではないかと心配しています。mongodb を完全に再インストールする必要がありました。リンク

更新:

サーバーの RAM のサイズを増やし、最大 3Gb の db.repairDatabase() を実行しただけで、すべてうまくいきました。

問題はメモリ不足でした。(メモリ マップ ファイル) mongod が起動しない - 136Kb のメモリが占​​有されています。mongod を起動すると、1100Kb のメモリが占​​有されます。私のデータベース オブジェクトでは 1165916 です。作成されるオブジェクトが大きいほど、より多くのメモリが占​​有されます。どうすればmongodbメモリの消費を減らすことができますか? または唯一の方法 - より多くのメモリ?

4

2 に答える 2

2

これと以前の問題の根本原因は同じだと思います - リソースの不足です。以前のメッセージで、最大 1.4 GB のメモリしかないことを示しました。この場合、より多くのメモリを割り当てたときに修復が成功しました。修復では、一連のデータ全体を一通り調べて書き換える必要があるため、負荷が高くなります。

MongoDB がメモリを使用する方法の詳細な説明がここにあります。

http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage

RAM 内のワーキング セットにはインデックスとデータが含まれているため、オブジェクトの数だけの問題ではないことを忘れないでください。

ほとんどの場合、作業データ セットが 1.4GB に収まる必要がある場合は、追加の RAM は必要ない可能性がありますが、これらの制限を超えた場合に備えてスワップを構成する必要があります (OOM キラーを回避するため)。およびその他の問題 - 詳細については、ここここを参照してください)。RAM を増やさずに、そのような使用も非常に遅くなるように準備してください。前の問題では、スワップが構成されていませんでした。修復など、使用可能なメモリをすべて消費するようなことを行った場合、OS はどこにも移動できません。

初期接続の失敗に関しては、引数が指定されていない場合、デフォルトで (IP ではなく) localhost:27017 に接続しようとする可能性があると思います。/etc/hostsファイルが IPV6 アドレスなどを返す可能性はありますか。ローカルホストに手動で接続しようとすると失敗しますか?

于 2012-08-02T11:37:57.600 に答える
0

「ulimit -v unlimited」はうまくいきます。

于 2013-08-13T04:47:54.320 に答える