私の mongodb セットアップが EBS IOPS 制限に達しないのはなぜですか?

私の mongodb セットアップが EBS IOPS 制限に達しないのはなぜですか?

MongoDB にデータを継続的に送り込むアプリケーションがあります。MongoDB インスタンスは 2 つのレプリカで実行されており、各レプリカには 3TB の gp2 EBS ボリュームがあります。

次のグラフからわかるように

irate(node_disk_reads_completed_total{}[1m])
irate(node_disk_writes_completed_total{}[1m])

ディスクの読み取りと書き込みのグラフ

読み取りパフォーマンスは遅くて安定していますが、これは正常ですが、書き込みのパフォーマンスが低いようです。

ピーク時でも、理論上の 3IOPS/GB * 3000 GB = 9k IOPS に達することはありません。アプリケーション自体は、クロック時間のほとんどを DB にますます多くのデータを送出することに費やしているため、アプリケーションの観点からは DB が明らかにボトルネックになっています。

では、なぜもっと速くできないのでしょうか? また、なぜこのような波があるのでしょうか? WAL への書き込みによって書き込みアクティビティが一定に発生し、ディスクへの定期的な fsync などによってこのような極端な上下パターンが発生することはないと予想されます。

レプリカ間の同期によってスループットが一時停止している可能性はありますか? ただし、デフォルトの書き込み処理を使用しているため、w: 1, j: trueレプリカを待つ必要はありません。

他に何か見落としているものはありますか?

関連情報