検索

ホームページ  >  に質問  >  本文

ダウンタイムなしで mongodb データベースをデフラグするにはどうすればよいですか?

mongo で大量の冗長データを削除した後、メモリとファイルは依然として多くのメモリとハードディスクを占有しており、パフォーマンスはあまり変化していないことがわかりました。

習慣沉默習慣沉默2835日前790

全員に返信(1)返信します

  • PHP中文网

    PHP中文网2017-05-02 09:24:51

    MongoDB のバージョンとエンジンは何ですか?
    3.2 以降の WT エンジンは、Compact を使用してスペースを解放できます。以前のバージョンでは、WT であっても MMAPv1 であっても、レプリカ セットを再同期することによってのみスペースを解放できました。
    問題は、実稼働環境では通常、解放する必要がないことです。遅かれ早かれ占有され、空き領域が再利用されるためです。実際にその領域が不足していない場合は、解放しないでください。それ。
    ダウンタイムの問題かどうかについては、この問題だけではありません。ほとんどの場合、ダウンタイムが発生しないように複数のノードを並行して実行することを考慮する必要があります。メイン ノードを取得すると、数秒間書き込みできなくなる可能性があります。

    理論的には、ディスク領域を再利用してもパフォーマンスに有益な影響はありません。ただし、3.0.6 および 3.0.7 で使用されていた WiredTiger エンジンにはバグが発生し、大量のドキュメントが削除されると、BTree のバランスが崩れ、重大なパフォーマンスの低下が発生しました。詳細については、JIRA チケット SERVER-21063 を参照してください。

    返事
    0
  • キャンセル返事