2017-01-08 4 views
0

Dockerとそのデータベースで動作するAWS EC2 t2.micro(30GBストレージ、1GB RAM)のクラウドにMongoDBインスタンスがあります。これには〜700MBのディスク容量が必要です。私のローカルコンピュータでMongoDBは上記の特定のスキップでドキュメントにアクセスできません

robomongo

、私はmongoシェルでこれを実行する場合:

db.my_collection.find().skip(200000).limit(1) 

、私は正しい結果を得るが、私はこれを実行する場合

db.my_collection.find().skip(220000).limit(1) 

その後、MongoDBのシャットダウンします。どうして?これらのデータにアクセスするにはどうすればよいですか?

+0

私は、ログファイルに探してお勧めしますし、それが言う何を参照してくださいね。 – Saleem

+0

ログには何も表示されません。少なくとも私が 'docker logs -f mongodb'を実行するときは。私はこれがログの唯一の場所だと思う。 –

+1

私が考えることができる他の理由は記憶です。あなたのシステムは1GB RAMと言われていましたが、これは最適ではありません。 RAMの増加が不可能な場合は、スワップ領域を増やすか、追加することをお勧めします。 – Saleem

答えて

0

あなたのシステムには、mongodbの要求を満たすのに十分なRAMがないようです。 Linuxシステムのメモリが非常に低い場合、カーネルはシステムクラッシュ自体を回避するためにプロセスを終了させます。

私はこれがあなたの場合でも起こっていると信じています。 Mongodbはログを書き込むチャンスも得られません。私はRAMを増やすことをお勧めします。それが実現できない場合は、スワップスペースを増やしてください。これはシステムのクラッシュを防ぎますが、mongodbは非常に遅いですが動作し続けます。

これらの優れたLinuxのリソースとその動作をご覧ください。

https://unix.stackexchange.com/questions/136291/will-linux-start-killing-my-processes-without-asking-me-if-memory-gets-short

https://serverfault.com/questions/480266/how-to-know-if-the-server-runs-out-of-ram-before-crashing-down

関連する問題