내 mongodb 설정이 EBS IOPS 제한에 도달하지 않는 이유는 무엇입니까?

내 mongodb 설정이 EBS IOPS 제한에 도달하지 않는 이유는 무엇입니까?

MongoDB에 지속적으로 데이터를 펌핑하는 애플리케이션이 있습니다. MongoDB 인스턴스는 각각 3TB gp2 EBS 볼륨을 갖춘 2개의 복제본으로 실행됩니다.

다음 그래프에서 볼 수 있듯이

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

디스크 읽기 및 쓰기 그래프

읽기 성능은 느리고 꾸준하며 이는 정상적인 현상이지만 쓰기 성능이 부족한 것 같습니다.

최고 수준에서도 이론적으로는 3IOPS/GB * 3000GB = 9,000 IOPS에 도달하지 않습니다. 애플리케이션 자체는 점점 더 많은 데이터를 DB로 펌핑하는 데 대부분의 시계 시간을 소비하므로 앱의 관점에서 볼 때 DB는 명확한 병목 현상입니다.

그러면 왜 더 빨리 갈 수 없습니까? 그리고 왜 그런 파도가 있습니까? 나는 WAL에 쓰는 것이 쓰기 활동의 지속적인 소스를 제공하고 디스크에 대한 주기적인 fsync와 같은 것들이 실제로 그렇게 극단적인 상승 및 하락 패턴을 일으키지 않을 것으로 기대합니다.

복제본 간의 동기화로 인해 처리량이 일시 중지될 수 있습니까? 그러나 나는 w: 1, j: true복제본을 기다릴 필요가 없고 필요하지 않은 기본 쓰기 문제를 사용하고 있습니다 .

제가 놓친 다른 것이 있나요?

관련 정보