프로필
정의
profile
버전 5.0에서 변경됨
mongod
인스턴스 의 경우 이 명령은 데이터베이스 프로파일러 를 활성화, 비활성화 또는 구성합니다. 프로파일러는 실행mongod
인스턴스 에서 쓰기 (write) 작업, 커서 및 데이터베이스 명령의 성능에 대한 데이터를 캡처하고 기록합니다. 프로파일러가 비활성화된 경우 이 명령은 느린 작업이 진단 로그 에 기록되는 방식을 구성합니다.mongod
에서 데이터베이스 프로파일러 수준이2
인 경우 프로파일러 및diagnostic log
에서 전체 로깅이 활성화됩니다.데이터베이스 프로파일러 수준
1
에서 다음 설정은 프로파일러와diagnostic log
을(를) 모두 수정합니다.데이터베이스 프로파일러 수준이
0
이면 데이터베이스 프로파일러가 비활성화됩니다.0
수준에서는 다음 설정이 진단 로그만 수정합니다.mongos
인스턴스 의 경우 명령은 작업이 진단 로그 에 기록되는 방식만 구성합니다. 에는 프로파일러가 쓰기 (write) 수 있는 컬렉션이 없기 때문에 {인스턴스 에서 데이터베이스 프로파일러 를 활성화 할 수mongos
없습니다.mongos
MongoDB 부터 명령 또는 래퍼
profile
5.0 메서드를 사용하여 데이터베이스level
slowms
sampleRate
filter
db.setProfilingLevel()
프로파일러 , , 또는 에 수행한 변경log file
사항은 .mongos
에서profile
수준을 다음과 같이 설정할 수 있습니다.0
진단 로그에 대해slowms
,sampleRate
및filter
을(를) 설정합니다.-1
현재 설정을 읽습니다.
프로파일러는 기본적으로 꺼진 상태입니다.
경고
프로파일링은 성능을 저하시키고 시스템 로그에서 암호화되지 않은 쿼리 데이터를 노출시킬 수 있습니다. 프로덕션 배포서버에서 프로파일러를 구성하고 활성화하기 전에 이것이 성능과 보안에 미치는 영향을 신중하게 고려하세요.
잠재적인 성능 저하에 대한 자세한 내용은 프로파일러 오버헤드를 참조하십시오.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand( { profile: <level>, slowms: <threshold>, sampleRate: <rate>, filter: <filter expression> } )
명령 필드
이 명령은 다음 필드를 사용합니다.
필드 | 유형 | 설명 | |
---|---|---|---|
| int | 프로파일러 수준을 구성합니다. 사용할 수 있는 수준은 다음과 같습니다.
에서는 | |
| int | 선택 사항 기본값: 100 느린 작동 시간 임계값(밀리초 단위)입니다. 이 임계값보다 오래 실행되는 작업은 느린 것으로 간주됩니다.
이 인수는 구성 옵션 | |
| double | 선택 사항 기본값: 1.0 프로파일링하거나 기록해야 하는 저속 작업의 비율입니다. 이 인수는 구성 옵션 | |
| 객체 | 선택 사항 프로파일이나 로그되는 작업을 결정하는 쿼리입니다. 필터 쿼리는 다음과 같은 형식을 취합니다.
쿼리는 쿼리 이 인수는 구성 옵션 |
db.getProfilingStatus()
및 db.setProfilingLevel()
shell 메서드는 profile
명령에 대한 래퍼(wrapper)를 제공합니다.
행동
profile
명령은 프로파일러를 활성화 또는 비활성화하면서 영향을 받는 데이터베이스에 대한 쓰기 잠금을 가져옵니다. 이 작업은 일반적으로 짧은 시간 내에 완료됩니다. profile
명령이 완료될 때까지 잠금이 다른 작업을 차단합니다.
mongos
를 통해 샤딩된 클러스터에 연결된 경우 모든 데이터베이스에 대해 profile
명령을 실행할 수 있습니다.
예시
필터링 활성화
프로파일링을 활성화하고 로깅된 데이터를 필터링합니다.
db.runCommand( { profile: 1, filter: { $or: [ { millis: { $gte: 100 } }, { user: "testuser@admin" } ] } } )
필터는 다음과 같은 작업만 선택합니다.
최소
100
밀리초 길이 이상 또는testuser
에서 제출한 작업만 선택합니다.
필터 설정 해제
프로필 필터를 지우려면 filter: "unset"
옵션으로 profile
을 실행합니다.
db.runCommand( { profile: 1, filter: "unset" } )
이 작업은 이전 설정 값이 포함된 문서를 반환합니다.
현재 프로파일링 수준을 보려면 db.getProfilingStatus()
를 참조하세요.