2017-11-29 12 views
0

私のmongodb 3.2.18スタンドアロンインスタンスには、amazon ebs io1 ssd disk xfs形式の128GB RAM、wiredTigerがあります。 100%ジョブは書き込みです。私はデータベースに5つのコレクションを持っており、それぞれ約8億のドキュメントがあります。Mongodb 3.2 wiredTigerは、100%のディスク使用率で定期的に書き込みを行います

30秒から60秒ごとに、iostatから100%のディスク使用率が10秒-15秒であることがわかりました。mongostat awからの同じデータが約10-15秒間20-50に増加しました。私は書き込みが本当に高くなっているとは思っていませんが、この定期的に高いディスク使用率の根本原因は何か不思議です。それは私の書き込み速度に多くの影響を与えます。以下は統計です。

normal statistics from iostat

100% disk utilization from iostat

mongostat aw increased to 40 for 10 seconds

答えて

0

単にコメントに投げるには長すぎる、適切な答えはありませんが...

JIRAの数がありました過去に、ユーザーがキャッシュエビクションに関連しているように思われるいくつかの類似の動作を報告していた問題がありました(以前のバージョンのようなものが3.0のように思います)。 M:

あなたの問題は、上記のものと100%同一ではないかもしれませんが、私はMongoDBのより新しいバージョンにアップグレードすることは解決可能性があることを想像できますあなたの問題。また、AWSサブスクリプションを一時的に増やして、問題が解消されるかどうかを確認する価値があります。

+0

ありがとう、ちょうど理由を見つけたと私はすでに投稿を更新します。 –

0

私は、主な理由は

を更新するときに、私はコレクション「mongo_user」への配列のリストをユーザ情報を更新するには、以下のコマンドを使用していますコレクションの「不要なインデックス」で分かりました。 id_time_dictは "post id"と "post time"を持つdictです

db_mongo.mongo_user.update({"_id":str(user_id)}、{"$ addToSet":{"投稿":{"$ ":id_time_dict}}})

インデックスとして「投稿」フィールドがあり、これはiotopコマンドから大量の読み込みにつながります。通常25m/s〜120m/sの読み込みでは、ディスクの使用率が100%になります。インデックスを落とした後、通常の読み込み負荷は2〜5m/sです。

関連する問題