다음 섹션에서는 운영 성능을 평가하는 테크닉에 대해 설명합니다.
데이터베이스 프로파일러를 사용하여 데이터베이스에 대한 작업 평가
MongoDB 는 데이터베이스 에 대한 각 작업의 성능 특성을 보여주는 데이터베이스 프로파일러 를 제공합니다. 프로파일러를 사용하여 느리게 실행 쿼리 또는 쓰기 (write) 작업을 찾습니다. 예를 예시 이 정보를 사용하여 생성할 인덱스를 결정할 수 있습니다.
읽기/쓰기 작업에 대한 프로파일러 항목 및 진단 로그 메시지(예: mongod/mongos logmessages) 에는 다음이 포함됩니다.
이제 복제본 세트의 세컨더리 멤버가 느린 작업 임곗값보다 오래 걸리는 oplog 항목을 기록합니다. 이러한 느린 oplog 메시지의 특성은 다음과 같습니다.
diagnostic log에 세컨더리 멤버에 대해 기록합니다.applied op: <oplog entry> took <num>ms텍스트와 함께REPL구성 요소 아래에 기록됩니다.로그 수준(시스템 또는 구성 요소 수준)에 의존하지 않습니다.
프로파일링 수준에 의존하지 않습니다.
slowOpSampleRate의 영향을 받습니다.
프로파일러는 느린 oplog 항목을 캡처하지 않습니다.
자세한 내용은 데이터베이스 프로파일러를 참조하세요.
을 db.currentOp() 사용하여 mongod 작업 평가
db.currentOp() 메서드는 mongod 인스턴스에서 실행 중인 현재 작업에 대해 보고합니다.
를 사용하여 explain 쿼리 성능 평가
cursor.explain() 및 db.collection.explain() 메서드는 쿼리 실행에 대한 정보(예: 쿼리를 수행하기 위해 MongoDB가 선택한 인덱스 및 실행 통계)를 반환합니다. queryPlanner 모드, executionStats 모드 또는 allPlansExecution 모드에서 메서드를 실행하여 반환되는 정보의 양을 제어할 수 있습니다.
예시
{ a: 1 } 표현식 과 일치하는 문서에 대한 쿼리 에서 cursor.explain() 를 사용하려면 records 라는 컬렉션 에서 mongosh에서 다음과 유사한 작업을 사용합니다.
db.records.find( { a: 1 } ).explain("executionStats")
MongoDB 4.2부터 설명 출력에 다음이 포함됩니다:
planCacheKey를 통해 느린 쿼리의 쿼리 계획 캐시에 대한 더 많은 인사이트를 제공합니다.
자세한 내용은 결과 설명, cursor.explain(), db.collection.explain() 및 쿼리 성능 분석을 참조하세요.