문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

프로필

이 페이지의 내용

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

버전 5.0에서 변경됨

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

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

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

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

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

log fileMongoDB 부터 시작. 명령 또는profile 래퍼 메서드를 5 0사용하여 데이터베이스 프로파일러 level slowmssampleRate filter db.setProfilingLevel(), , 또는 에 대한 변경 사항이 에 기록됩니다.

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

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

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

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

경고

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

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

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

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

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

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() 셸 메서드profile 명령에 대한 래퍼를 제공합니다.

profile 명령은 프로파일러를 활성화하거나 비활성화하는 동안 영향을 받는 데이터베이스에 대한 쓰기 잠금(write lock)을 얻습니다. 이 작업은 일반적으로 짧은 시간 내에 완료됩니다. 잠금은 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