현재 작업의 성능 평가
이 페이지의 내용
다음 섹션에서는 운영 성능을 평가하는 테크닉에 대해 설명합니다.
데이터베이스 프로파일러를 사용하여 데이터베이스에 대한 작업 평가
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()
및 쿼리 성능 분석을 참조하세요.