私が Mongo レプリカ セットをテストして行ったことに基づいて、いくつかのアドバイスを与えることができますが、それはクラウドでノードをホストすることにかなり固有のものであると思います。それでも、そこから何かを奪うことができるかもしれません。
レプリカがセットアップされていると仮定します。
すべてのノードの優先度が同じであることを確認してください。レプリカ セットに対して読み込みが遅いクライアントを作成します (3 台のマシンすべてがクライアント構成に含まれていることを確認してください)。読み込みが遅いとは、大きなクエリを作成してから、カーソルをゆっくりと反復することを意味します。プライマリをオフラインにして、何が起こるか見てみましょう。他のノードのログ ファイルを追跡して、それらが新しいプライマリに投票するのを監視できます。
各ノードにホスト名を使用している場合は、実行速度の遅いクエリを実行してから、ホスト名が新しい IP アドレスを取得するようにノードを停止/開始します。Mongo クライアントが DNS キャッシュを更新せず、古い IP アドレスのままになっていることがわかりました。(これは Java クライアント用です - Jira バグを提出しました)。
レプリカ セット内のすべてのノードを再起動すると、プライマリが移動することに注意してください。ノード 1 の場合もあれば、ノード 2 の場合もあります。これは、すべてのノードの優先度が同じであることを前提としています。あなたのクライアントはこれをうまく処理していますか?以前は、書き込み用に 1 つのノードをハードコーディングしたところ、突然すべての書き込みが失敗したため、問題が発生していました。
継続的な書き込みをシミュレートするツールを作成してから、ノードをオフラインにし、プライマリを強制終了し、新しい IP でマシンを再起動します。書き込みを削除する予定はありますか?
mongod を停止する以外に、インスタンスを一時停止/再開するコマンドはありません。個人的にテストするためにマシンの電源を切るのが好きです。