7

ubuntu 64 ビット OS と 1.6 GB RAM を搭載した Amazon EC2 に MongoDB 2.4.4 をインストールしました。

このサーバーでは、MongoDB のみが実行されています。

ただし、CPU 使用率が 99% に達し、平均負荷が 500.01、400.73、620.77 になることがあります。

また、サーバー上で何が起こっているかを監視するために、サーバーに MMS をインストールしました。

MMSの詳細はこちらここに画像の説明を入力

MMS の詳細によると、インデックス作成は各クエリに対して完全に機能します。

容疑者の詳細は以下の通り

1) HIGH マップされていない仮想メモリ

2) HIGH ページ フォールト

CPU使用率が高い原因を正確に理解するのを手伝ってくれる人はいますか?

編集:

@Dylan Tong のコメントの後、アクティブな接続を減らしましたが、まだマップされていない仮想メモリが多くあります

ここに画像の説明を入力

4

1 に答える 1

4

以下に、確認すべきいくつかの事項の概要を示します。

1. 多数の接続とカーソルを観察 (13k): - 修正: 接続プールが適切であることを確認してください。レポート、および現在のリクエスト レートについては、多くても少数の接続しか必要ありません。また、m1small インスタンスがあると思います。つまり、コアが 1 つしかないということです。

2. クエリとインデックスを確認します。 - Explain() を使用してクエリを実行し、クエリがどのように実行されるかを観察します。通常、適切なモデルでは、クエリはごく少数のドキュメントのみを取得し、インデックスを使用します。

3. メモリー (コンパクトおよび先読み設定): - メモリーを最大限に活用します。1.6GBは少ないです。空きメモリの量を確認し、常駐として報告されているものと比較します。常駐メモリ不足の一般的な原因のいくつかは、断片化によるものです。大量のドキュメントの移動、サイズの変更などがある場合は、compact コマンドを実行してデータ ファイルを最適化する必要があります。また、先読みがうまくいかないと、メモリの使用率が低下する可能性もあります。先読み設定を確認してください ( http://manpages.ubuntu.com/manpages/lucid/man2/readahead.2.html )。低い値から始めて、いくつかの値を試してみてください ( http://docs.mongodb.org/manual/administration/production-notes/)。プロダクション ノートでは 32 を推奨しています (標準の 512 バイト ブロックの場合)。ドキュメントが大きい場合は、より高い値が最適な場合があります。常駐メモリが使用可能なメモリに近くなり、ページ フォールトが減少し始めることが期待されます。

この後もリソースを最大限に使用していて、それでも CPU の上限に達している場合は、リソースを増やす必要があることを意味します。

于 2013-08-04T03:26:52.580 に答える