状況:
以前は、3台のマシンがありました:10.10.10.5、10.10.10.6、および10.10.10.7
10.10.10.5の実行:
- 構成データベース
- mongoS
- shard3、shard4 mongodプロセス(これらはシャードのプライマリです)
10.10.10.6の実行:
- mongoS
- shard3 shard4 mongodプロセス(これらはシャードでセカンダリです)
10.10.10.7の実行:
- mongoS
- shard3、shard4 mongodプロセス(これらはアービターです)
私のアプリケーションは10.10.10.6mongoSに接続します。
約1年間、すべてが順調に稼働していました。次に、10.5と10.6は非常に重い負荷、特に10.6を経験しました。CPU使用率と負荷平均が非常に高かったため、クラスターに2台の新しいマシンを追加することを計画しました。
shard1とshard2の2つのシャードを作成しました。新しいマシン10.10.10.8は次のように実行されます。
- shard1(プライマリ)、shard2(セカンダリ)
- mongoS
新しいマシン10.10.10.9は次のように実行されます。
- shard1(セカンダリ)、shard2(プライマリ)
- mongoS
古いメンバー10.10.10.7に、shard1、shard2アービターも追加しました。
問題は、(addShardコマンドを使用して)2台の新しいマシンを追加したとき、約5時間後に移行が完了した後(確認できませんが)、10.10.10.6ホストの負荷が再び非常に高くなりました。負荷平均は約90.5(4 cpus)です。
一方、アプリケーションから10.10.10.6 mongoSへの書き込みと読み取りの要求は多数ありますが、新しい2台のマシンにデータが書き込まれることはほとんどありません。iostatを使用して、2台の新しいマシンにioバイトがほとんどないことを確認しました。
10.10.10.6の負荷が非常に高いのはなぜですか?
以前は、ピーク時でも最大負荷は約30.5でした
では、負荷の問題を修正して新しいマシンを稼働させる方法を教えていただけますか?
編集:私の環境に関する詳細情報
10.5、10.6、10.7、10.8、10.9はすべて同じリソースを持っています:4CPUS、6g Mem、150Gディスクスペース、netioは光ファイバーです。
Shard3データサイズ=16gおよびShard4データサイズ15g。
1.8.2を使用しています