Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

프로필

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 명령 필드
  • 행동
  • 예시
  • 필터링 활성화
  • 필터 설정 해제
profile

버전 5.0에서 변경됨

mongod 인스턴스 의 경우 이 명령은 데이터베이스 프로파일러 를 활성화, 비활성화 또는 구성합니다. 프로파일러는 실행 mongod 인스턴스 에서 쓰기 (write) 작업, 커서 및 데이터베이스 명령의 성능에 대한 데이터를 캡처하고 기록합니다. 프로파일러가 비활성화된 경우 이 명령은 느린 작업이 진단 로그 에 기록되는 방식을 구성합니다.

mongod에서 데이터베이스 프로파일러 수준2인 경우 프로파일러 및 diagnostic log에서 전체 로깅이 활성화됩니다.

데이터베이스 프로파일러 수준 1에서 다음 설정은 프로파일러와 diagnostic log을(를) 모두 수정합니다.

  • slowms

  • sampleRate

  • 필터

데이터베이스 프로파일러 수준0이면 데이터베이스 프로파일러가 비활성화됩니다. 0 수준에서는 다음 설정이 진단 로그만 수정합니다.

mongos 인스턴스 의 경우 명령은 작업이 진단 로그 에 기록되는 방식만 구성합니다. 에는 프로파일러가 쓰기 (write) 수 있는 컬렉션이 없기 때문에 {인스턴스 에서 데이터베이스 프로파일러 를 활성화 할 수 mongos 없습니다.mongos

MongoDB 부터 명령 또는 래퍼profile 5.0 메서드를 사용하여 데이터베이스 level slowmssampleRate filter db.setProfilingLevel() 프로파일러 , , 또는 에 수행한 변경 log file 사항은 .

mongos에서 profile 수준을 다음과 같이 설정할 수 있습니다.

  • 0 진단 로그에 대해 slowms, sampleRatefilter을(를) 설정합니다.

  • -1 현재 설정을 읽습니다.

프로파일러는 기본적으로 꺼진 상태입니다.

경고

프로파일링은 성능을 저하시키고 시스템 로그에서 암호화되지 않은 쿼리 데이터를 노출시킬 수 있습니다. 프로덕션 배포서버에서 프로파일러를 구성하고 활성화하기 전에 이것이 성능과 보안에 미치는 영향을 신중하게 고려하세요.

잠재적인 성능 저하에 대한 자세한 내용은 프로파일러 오버헤드를 참조하십시오.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

참고

이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.

명령은 다음과 같은 구문을 가집니다:

db.runCommand(
{
profile: <level>,
slowms: <threshold>,
sampleRate: <rate>,
filter: <filter expression>
}
)

이 명령은 다음 필드를 사용합니다.

필드
유형
설명
profile
int

프로파일러 수준을 구성합니다. 사용할 수 있는 수준은 다음과 같습니다.

0
프로파일러가 꺼져 있고 데이터를 수집하지 않습니다. 이것이 기본 설정된 프로파일러 수준입니다.
1

프로파일러는 slowms 임계값을 초과하거나 지정된 필터하다 와 일치하는 작업에 대한 데이터를 수집합니다.

필터가 설정된 경우:

  • slowms, sampleRate 옵션은 프로파일링에 사용되지 않습니다.

  • 프로파일러는 필터일치하는 작업만 캡처합니다.

2
프로파일러가 모든 작업의 데이터를 수집합니다.

mongos에서는 프로파일링을 사용할 수 없으므로 profile 명령을 사용하여 프로파일링 수준을 mongos 인스턴스에서 0 이외의 값으로 설정할 수 없습니다.

slowms
int

선택 사항 기본값: 100

느린 작동 시간 임계값(밀리초 단위)입니다. 이 임계값보다 오래 실행되는 작업은 느린 것으로 간주됩니다.

느린 작업은 MongoDB가 해당 작업에 소요하는 시간인 workingMillis를 기준으로 기록됩니다. 즉 잠금 대기 및 흐름 제어와 같은 요소는 작업이 느린 작업 임계값을 초과하는지 여부에 영향을 미치지 않습니다.

logLevel0으로 설정하면, MongoDB는 slowOpSampleRate 의해 결정되는 속도로 느린 작업을 진단 로그에 기록합니다.

logLevel을 더 높게 설정하면 높으면 모든 작업이 지연 시간과 관계없이 진단 로그에 표시됩니다. 단, 세컨더리의 저속 oplog 항목 메시지 로깅은 예외입니다. 세컨더리 로그는 oplog 항목만 기록하며, logLevel 을 높여도 모든 oplog 항목이 기록되지는 않습니다.

이 인수는 구성 옵션 operationProfiling.slowOpThresholdMs와 동일한 설정에 영향을 줍니다.

sampleRate
double

선택 사항 기본값: 1.0

프로파일링하거나 기록해야 하는 저속 작업의 비율입니다. sampleRate에 0과 1(두 값 모두 포함) 사이의 값을 사용할 수 있습니다.

이 인수는 구성 옵션 operationProfiling.slowOpSampleRate와 동일한 설정에 영향을 미치며, 세컨더리의 느린 oplog 항목 로그 메시지에는 영향을 미치지 않습니다.

filter
객체

선택 사항 프로파일이나 로그되는 작업을 결정하는 쿼리입니다.

필터 쿼리는 다음과 같은 형식을 취합니다.

{ <field1>: <expression1>, ... }

쿼리는 쿼리 <field>이(가) 프로파일러 출력의 필드와 일치하는 모든 합법적인 find() 작업일 수 있습니다.

이 인수는 구성 옵션 operationProfiling.filter 와 동일한 설정에 영향을 줍니다. filter 을 설정하다 하면 slowmssampleRate 옵션이 프로파일링 및 느린 쿼리 로그 줄에 사용되지 않습니다.

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()를 참조하세요.

돌아가기

ping