1

変更を加えるために数分前にダンプしたデータベースを復元しています。Mongorestoreは約100%のCPUを使用し、予想よりもはるかに多くの時間を費やしています。作成したインデックスが原因かもしれないと思いましたが、コレクションを1つでも復元しても問題は同じです。コレクションのサイズは約314MBで、約185000のドキュメントがあります。通常、このようなことは起こりません。システムのディスク容量が少ないことが原因かもしれませんが、それも11GBです。誰かが私を助けることができます、それはどのような問題である可能性がありますか?

注:私はmongoクライアントから物事をやっています。ドライバーは含まれていません。

4

1 に答える 1

0

コメントでこれがロギングに関連していることを示したように、私はいくつかのステップを踏むことを提案します:

まず、ログローテーションを使用します。これは、データベースへのコマンドを介して、またはSIGUSR1シグナルをプロセスに送信することによって実行できるため、定期的にcronジョブとしてスクリプトを作成したり有効にしたりするのは非常に簡単です。詳細はこちら:

http://www.mongodb.org/display/DOCS/Logging#Logging-Rotatingthelogfiles

次に、ログレベルを確認します。-v=ログレベル1から開始。-vv = logleve2など。起動時と実行時の両方で調整できます。実行時の調整には、setParameterコマンドを使用します。

// connect to the database or mongos
use admin;
// check the log level
db.runCommand({getParameter : 1, logLevel: 1})
{ "logLevel" : 0, "ok" : 1 }
// set it higher
db.runCommand({setParameter : 1, logLevel: 1})
// back to default levels
{ "was" : 0, "ok" : 1 }
db.runCommand({setParameter : 1, logLevel: 0})
{ "was" : 1, "ok" : 1 }

最後に、-quietを使用して実行し、メッセージングの一部を削減することもできます。

于 2012-08-30T11:05:28.630 に答える