DocumentDB 인스턴스의 높은 CPU 사용률 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 6월 17일

Amazon DocumentDB(MongoDB 호환) 인스턴스의 CPU 사용률이 높습니다. 높은 CPU 사용률을 해결하려면 어떻게 해야 합니까?

간략한 설명

Amazon DocumentDB 인스턴스의 CPU 사용률은 다음과 같은 이유로 증가할 수 있습니다.

  • 사용자가 작업량이 많은 워크로드를 시작
  • 비효율적인 쿼리
  • 클러스터 내에서 로드를 분산하지 않고 라이터 또는 클러스터의 특정 DB 인스턴스에서 과한 로드를 처리

다음 리소스를 사용하여 CPU 성능 문제를 해결하십시오.

해결 방법

replicaSet를 사용하여 워크로드 분할

DB 인스턴스가 여러 개인 DocumentDB 클러스터가 있는 경우 라이터 CPU가 높은지, 리더가 유휴 상태인지 확인합니다. 맞다면 라이터가 오버로드된 것입니다.

이 문제를 해결하려면 replicaSet를 사용하여 워크로드를 분할하거나 여러 연결 풀을 사용하여 읽기 쿼리를 리더 DB 인스턴스로 라우팅합니다.

연결에 대한 readPreference 지정

복제본 세트로 연결하는 경우 연결에 대한 readPreference를 지정할 수 있습니다. 읽기 기본 설정을 secondaryPreferred로 지정하면 클라이언트가 읽기 쿼리를 복제본으로 라우팅하고 쓰기 쿼리를 기본 DB 인스턴스로 라우팅합니다. 다음 예제는 Python의 연결 문자열을 보여줍니다.

## Create a MongoDB client, open a connection to Amazon DocumentDB as a
##   replica set and specify the read preference as secondary preferred

참고: 읽기 전용 복제본에서 읽기는 최종적 일관된 읽기입니다.

클러스터에 하나 이상의 리더 인스턴스 추가

단일 DB 인스턴스가 있는 DocumentDB 클러스터(라이터 전용)가 있는 경우 클러스터에 하나 이상의 리더 DB 인스턴스를 추가합니다. 그런 다음 readPreference=secondaryPrefered를 사용하여 로드를 효율적으로 처리합니다.

프로파일러를 사용하여 느린 쿼리 식별

로드가 모든 복제본에 고르게 분산되는 경우 프로파일러를 사용하여 시간이 지남에 따라 느려지는 쿼리를 식별합니다.

DB 인스턴스의 인스턴스 클래스 확장

DocumentDB 클러스터에 있는 DB 인스턴스의 인스턴스 클래스를 확장하여 워크로드를 처리할 수도 있습니다.

참고: 인스턴스 클래스를 확장하면 비용이 증가합니다. 자세한 내용은 DocumentDB 요금을 참조하십시오.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?