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

현재 OP

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 행동
  • 액세스 제어
  • 예시
  • 출력 예시
  • 특정 출력 예시
  • 출력 필드
currentOp

버전 6.2부터 더 이상 사용되지 않습니다.

6.2 이상 버전에서는 $currentOp 집계 단계를 사용합니다.

mongod 인스턴스에 대한 진행 중인 작업 정보가 포함된 문서를 반환합니다.

currentOp명령 및 해당 mongosh 헬퍼 메서드 db.currentOp() 대신 $currentOp 집계 단계를 사용합니다.

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

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

참고

이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원 에 대한 자세한 내용은 지원되지 않는 명령을 참조하세요.

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

db.adminCommand(
{
currentOp: 1
}
)

참고

MongoDB 5.0부터 $currentOp 집계 단계는 mongosh와 함께 헬퍼 메서드 db.currentOp()를 실행할 때 사용됩니다.

따라서 mongosh가 포함된 셸 5.0 버전에서 db.currentOp() 결과 세트는 이전 레거시 mongo 버전의 문서에 대한 16MB BSON 문서 반환 크기 문서 반환 크기 제한이 적용되지 않습니다.

currentOp admin 데이터베이스에 대해 실행되어야 하며, 여러 선택적 필드를 허용할 수 있습니다.

필드
설명
"$ownOps"

부울. true로 설정하면 현재 사용자의 연산에 대한 정보만 반환합니다.

mongod 인스턴스에서 사용자는 항상 "$ownOps": truecurrentOp를 실행하여 자신의 작업을 볼 수 있는 권한이 있습니다. 액세스 제어를 참조하세요.

"$all"

부울. true로 설정하면 유휴 연결에 대한 연산 및 시스템 연산을 포함한 모든 연산에 대한 정보를 반환합니다.

"$all": true 모든 출력 필드 필터를 재정의합니다.

<filter>
출력 필드에 필터 조건을 지정합니다. 예시를 참조하세요.
comment

선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.

댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다.

currentOp 데이터베이스 프로파일러는 다음을 포함하여 CRUD 작업에 대한 동일한 기본 진단 정보를 보고합니다.

이러한 작업은 느린 쿼리 로깅에도 포함됩니다. 느린 쿼리 로깅에 대한 자세한 내용은 slowOpThresholdMs를 참조하세요.

Queryable Encryption을 사용하는 경우 encryptionInformation 옵션이 있는 currentOp 작업은 특정 정보를 삭제합니다.

  • 출력은 "command" 이후의 모든 필드를 생략합니다.

  • 출력은 "command"를 첫 번째 요소, $comment$db만 포함하도록 편집합니다.

authorization로 실행되는 시스템에서는 사용자에게 inprog 권한 작업이 포함된 액세스 권한이 있어야 합니다.

사용자는 mongod 인스턴스에서 $ownOps를 사용하여 inprog 권한 작업 없이 자신의 작업을 볼 수 있습니다.

db.adminCommand( { currentOp: 1, "$ownOps": 1 } )

다음도 참조하세요.

다음 예시에서는 currentOp 메서드를 다양한 쿼리 문서와 함께 사용하여 출력을 필터링합니다.

db.adminCommand(
{
currentOp: true,
"$all": true
}
)

다음 예에서는 잠금을 기다리는 모든 쓰기 작업에 대한 정보를 반환합니다.

db.adminCommand(
{
currentOp: true,
"waitingForLock" : true,
$or: [
{ "op" : { "$in" : [ "insert", "update", "remove" ] } },
{ "command.findandmodify": { $exists: true } }
]
}
)

다음 예시에서는 결코 양보되지 않은 모든 활성 실행 작업에 대한 정보를 반환합니다.

db.adminCommand(
{
currentOp: true,
"active" : true,
"numYields" : 0,
"waitingForLock" : false
}
)

다음 예시에서는 3초 이상 실행된 데이터베이스 db1의 모든 활성 작업에 대한 정보를 반환합니다.

db.adminCommand(
{
currentOp: true,
"active" : true,
"secs_running" : { "$gt" : 3 },
"ns" : /^db1\./
}
)

다음 예시에서는 인덱스 생성 작업에 대한 정보를 반환합니다.

db.adminCommand(
{
currentOp: true,
$or: [
{ op: "command", "command.createIndexes": { $exists: true } },
{ op: "none", "msg" : /^Index Build/ }
]
}
)

다음은 독립형으로 실행했을 때 currentOp 출력의 프로토타입입니다.

{
"inprog": [
{
"type" : <string>,
"host" : <string>,
"desc" : <string>,
"connectionId" : <number>,
"client" : <string>,
"appName" : <string>,
"clientMetadata" : <document>,
"active" : <boolean>,
"currentOpTime" : <string>,
"effectiveUsers" : [
{
"user" : <string>,
"db" : <string>
}
],
"opid" : <number>,
"lsid" : {
"id" : <UUID>,
"uid" : <BinData>
},
"secs_running" : <NumberLong()>,
"microsecs_running" : <number>,
"op" : <string>,
"ns" : <string>,
"command" : <document>,
"queryFramework" : <string>,
"planSummary": <string>,
"cursor" : { // only for getMore operations
"cursorId" : <NumberLong()>,
"createdDate" : <ISODate()>,
"lastAccessDate" : <ISODate()>,
"nDocsReturned" : <NumberLong()>,
"nBatchesReturned" : <NumberLong()>,
"noCursorTimeout" : <boolean>,
"tailable" : <boolean>,
"awaitData" : <boolean>,
"originatingCommand" : <document>,
"planSummary" : <string>,
"operationUsingCursorId" : <NumberLong()>
},
"msg": <string>,
"progress" : {
"done" : <number>,
"total" : <number>
},
"killPending" : <boolean>,
"numYields" : <number>,
"dataThroughputLastSecond" : <number>,
"dataThroughputAverage" : <number>,
"locks" : {
"ParallelBatchWriterMode" : <string>,
"ReplicationStateTransition" : <string>,
"Global" : <string>,
"Database" : <string>,
"Collection" : <string>,
"Metadata" : <string>,
"oplog" : <string>
},
"waitingForLock" : <boolean>,
"lockStats" : {
"ParallelBatchWriterMode" : {
"acquireCount": {
"r": <NumberLong>,
"w": <NumberLong>,
"R": <NumberLong>,
"W": <NumberLong>
},
"acquireWaitCount": {
"r": <NumberLong>,
"w": <NumberLong>,
"R": <NumberLong>,
"W": <NumberLong>
},
"timeAcquiringMicros" : {
"r" : NumberLong(0),
"w" : NumberLong(0),
"R" : NumberLong(0),
"W" : NumberLong(0)
},
"deadlockCount" : {
"r" : NumberLong(0),
"w" : NumberLong(0),
"R" : NumberLong(0),
"W" : NumberLong(0)
}
},
"ReplicationStateTransition" : {
...
},
"Global": {
...
},
"Database" : {
...
},
...
}
},
...
],
"fsyncLock": <boolean>,
"info": <string>,
"ok": <num>
}

다음은 복제본 세트 의 프라이머리 에서 실행 때 currentOp 출력의 프로토타입입니다.

{
"inprog": [
{
"type" : <string>,
"host" : <string>,
"desc" : <string>,
"connectionId" : <number>,
"client" : <string>,
"appName" : <string>,
"clientMetadata" : <document>,
"lsid" : {
"id" : <UUID>,
"uid" : <BinData>
},
"transaction" : {
"parameters" : {
"txnNumber" : <NumberLong()>,
"autocommit" : <boolean>,
"readConcern" : {
"level" : <string>
}
},
"readTimestamp" : <Timestamp>,
"startWallClockTime" : <string>,
"timeOpenMicros" : <NumberLong()>,
"timeActiveMicros" : <NumberLong()>,
"timeInactiveMicros" : <NumberLong()>,
"expiryTime" : <string>,
},
"active" : <boolean>,
"currentOpTime" : <string>,
"effectiveUsers" : [
{
"user" : <string>,
"db" : <string>
}
],
"opid" : <number>,
"secs_running" : <NumberLong()>,
"microsecs_running" : <number>,
"op" : <string>,
"ns" : <string>,
"command" : <document>,
"originatingCommand" : <document>,
"queryFramework" : <string>,
"planSummary": <string>,
"prepareReadConflicts" : <NumberLong()>,
"writeConflicts" : <NumberLong()>,
"cursor" : { // only for getMore operations
"cursorId" : <NumberLong()>,
"createdDate" : <ISODate()>,
"lastAccessDate" : <ISODate()>,
"nDocsReturned" : <NumberLong()>,
"nBatchesReturned" : <NumberLong()>,
"noCursorTimeout" : <boolean>,
"tailable" : <boolean>,
"awaitData" : <boolean>,
"originatingCommand" : <document>,
"planSummary" : <string>,
"operationUsingCursorId" : <NumberLong()>
},
"msg": <string>,
"progress" : {
"done" : <number>,
"total" : <number>
},
"killPending" : <boolean>,
"numYields" : <number>,
"dataThroughputLastSecond" : <number>,
"dataThroughputAverage" : <number>,
"locks" : {
"ParallelBatchWriterMode" : <string>,
"ReplicationStateTransition" : <string>,
"Global" : <string>,
"Database" : <string>,
"Collection" : <string>,
"Metadata" : <string>,
"oplog" : <string>
},
"waitingForLock" : <boolean>,
"lockStats" : {
"ParallelBatchWriterMode" : {
"acquireCount": {
"r": <NumberLong>,
"w": <NumberLong>,
"R": <NumberLong>,
"W": <NumberLong>
},
"acquireWaitCount": {
"r": <NumberLong>,
"w": <NumberLong>,
"R": <NumberLong>,
"W": <NumberLong>
},
"timeAcquiringMicros" : {
"r" : NumberLong(0),
"w" : NumberLong(0),
"R" : NumberLong(0),
"W" : NumberLong(0)
},
"deadlockCount" : {
"r" : NumberLong(0),
"w" : NumberLong(0),
"R" : NumberLong(0),
"W" : NumberLong(0)
}
},
"ReplicationStateTransition" : {
...
},
"Global" : {
...
},
"Database" : {
...
},
...
}
},
...
],
"fsyncLock": <boolean>,
"info": <string>,
"ok": <num>,
"operationTime": <timestamp>,
"$clusterTime": <document>
}

다음은 currentOp 샤딩된 클러스터 의 에서 실행 mongos 때의 출력의 예시 입니다(필드는 보고되는 작업에 따라 다를 수 있음).

{
"inprog": [
{
"shard": <string>,
"type" : <string>,
"host" : <string>,
"desc" : <string>,
"connectionId" : <number>,
"client_s" : <string>,
"appName" : <string>,
"clientMetadata" : <document>,
"lsid" : {
"id" : <UUID>,
"uid" : <BinData>
},
"transaction" : {
"parameters" : {
"txnNumber" : <NumberLong()>,
"autocommit" : <boolean>,
"readConcern" : {
"level" : <string>
}
},
"readTimestamp" : <Timestamp>,
"startWallClockTime" : <string>,
"timeOpenMicros" : <NumberLong()>,
"timeActiveMicros" : <NumberLong()>,
"timeInactiveMicros" : <NumberLong()>,
"expiryTime" : <string>,
},
"active" : <boolean>,
"currentOpTime" : <string>,
"effectiveUsers" : [
{
"user" : <string>,
"db" : <string>
}
],
"runBy" : [
{
"user" : <string>,
"db" : <string>
}
],
"twoPhaseCommitCoordinator" : {
"lsid" : {
"id" : <UUID>,
"uid" : <BinData>
},
"txnNumber" : <NumberLong>,
"numParticipants" : <NumberLong>,
"state" : <string>,
"commitStartTime" : <ISODate>,
"hasRecoveredFromFailover" : <boolean>,
"stepDurations" : <document>,
"decision" : <document>,
"deadline" : <ISODate>
}
"opid" : <string>,
"secs_running" : <NumberLong()>,
"microsecs_running" : <number>,
"op" : <string>,
"ns" : <string>,
"command" : <document>,
"configTime" : <Timestamp>, // Starting in 5.0
"topologyTime" : <Timestamp>, // Starting in 5.0
"queryFramework" : <string>, // Starting in 6.2
"planSummary": <string>,
"prepareReadConflicts" : <NumberLong()>,
"writeConflicts" : <NumberLong()>,
"cursor" : { // only for getMore operations
"cursorId" : <NumberLong()>,
"createdDate" : <ISODate()>,
"lastAccessDate" : <ISODate()>,
"nDocsReturned" : <NumberLong()>,
"nBatchesReturned" : <NumberLong()>,
"noCursorTimeout" : <boolean>,
"tailable" : <boolean>,
"awaitData" : <boolean>,
"originatingCommand" : <document>,
"planSummary" : <string>,
"operationUsingCursorId" : <NumberLong()>
},
"msg": <string>,
"progress" : {
"done" : <number>,
"total" : <number>
},
"killPending" : <boolean>,
"numYields" : <number>,
"dataThroughputLastSecond" : <number>,
"dataThroughputAverage" : <number>,
"locks" : {
"ParallelBatchWriterMode" : <string>,
"ReplicationStateTransition" : <string>,
"Global" : <string>,
"Database" : <string>,
"Collection" : <string>,
"Metadata" : <string>,
"DDLDatabase" : <string>,
"DDLCollection" : <string>,
"oplog" : <string>
},
"waitingForLock" : <boolean>,
"lockStats" : {
"ParallelBatchWriterMode": {
"acquireCount": {
"r": <NumberLong>,
"w": <NumberLong>,
"R": <NumberLong>,
"W": <NumberLong>
},
"acquireWaitCount": {
"r": <NumberLong>,
"w": <NumberLong>,
"R": <NumberLong>,
"W": <NumberLong>
},
"timeAcquiringMicros" : {
"r" : NumberLong(0),
"w" : NumberLong(0),
"R" : NumberLong(0),
"W" : NumberLong(0)
},
"deadlockCount" : {
"r" : NumberLong(0),
"w" : NumberLong(0),
"R" : NumberLong(0),
"W" : NumberLong(0)
}
},
"ReplicationStateTransition" : {
...
},
"Global" : {
...
},
"Database" : {
...
},
...
}
},
...
],
"ok": <num>,
"operationTime": <timestamp>,
"$clusterTime": <document>
}

이러한 출력 샘플은 특정 연산에 대한 currentOp 출력을 보여 줍니다. 실제 출력을 구성하는 필드는 서버의 역할에 따라 달라집니다.

{
type: "op",
desc: "Resharding{Donor, Recipient, Coordinator}Service <reshardingUUID>",
op: "command",
ns: "<database>.<collection>",
originatingCommand: {
reshardCollection: "<database>.<collection>",
key: <shardkey>,
unique: <boolean>,
collation: {locale: "simple"},
// Other options to the reshardCollection command are omitted
// to decrease the likelihood the output is truncated.
},
{donor, coordinator, recipient}State : "<service state>",
approxDocumentsToCopy: NumberLong(<count>),
approxBytesToCopy: NumberLong(<count>),
bytesCopied: NumberLong(<count>),
countWritesToStashCollections: NumberLong(<count>),
countWritesDuringCriticalSection : NumberLong(<count>),
countReadsDuringCriticalSection: NumberLong(<count>),
deletesApplied: NumberLong(<count>),
documentsCopied: NumberLong(<count>),
insertsApplied: NumberLong(<count>),
oplogEntriesFetched: NumberLong(<count>),
oplogEntriesApplied: NumberLong(<count>),
remainingOperationTimeEstimatedSecs: NumberLong(<count>),
allShardsLowestRemainingOperationTimeEstimatedSecs: NumberLong(<estimate>),
allShardsHighestRemainingOperationTimeEstimatedSecs: NumberLong(<estimate>),
totalApplyTimeElapsedSecs: NumberLong(<count>),
totalCopyTimeElapsedSecs: NumberLong(<count>),
totalCriticalSectionTimeElapsedSecs : NumberLong(<count>),
totalOperationTimeElapsedSecs: NumberLong(<count>),
updatesApplied: NumberLong(<count>),
}
{
type: "op",
desc: "GlobalIndex{Donor, Recipient, Coordinator}Service <globalIndexUUID}",
op: "command",
ns: "<database>.<collection>",
originatingCommand: {
createIndexes: "<database>.<collection>",
key: <indexkeypattern>,
unique: <boolean>,
<Additional createIndexes options>
},
{donor, coordinator, recipient}State : "<service state>",
approxDocumentsToScan: NumberLong(<count>),
approxBytesToScan: NumberLong(<count>),
bytesWrittenFromScan: NumberLong(<count>),
countWritesToStashCollections: NumberLong(<count>),
countWritesDuringCriticalSection : NumberLong(<count>),
countReadsDuringCriticalSection: NumberLong(<count>),
keysWrittenFromScan: NumberLong(<count>),
remainingOperationTimeEstimatedSecs: NumberLong(<count>),
allShardsLowestRemainingOperationTimeEstimatedSecs: NumberLong(<estimate>),
allShardsHighestRemainingOperationTimeEstimatedSecs: NumberLong(<estimate>),
totalCopyTimeElapsedSecs: NumberLong(<count>),
totalCriticalSectionTimeElapsedSecs : NumberLong(<count>),
totalOperationTimeElapsedSecs: NumberLong(<count>),
}
currentOp.type

작업 유형입니다. 값은 다음 중 하나입니다.

  • op

  • idleSession

  • idleCursor

currentOp.typeop인 경우 currentOp.op는 특정 작업에 대한 세부 정보를 제공합니다.

currentOp.host

작업이 실행되는 호스트의 이름입니다.

currentOp.desc

클라이언트에 대한 설명입니다. 이 string에는 connectionId가 포함됩니다.

currentOp.connectionId

작업이 시작된 연결의 식별자입니다.

currentOp.client

작업이 시작된 위치에 대한 정보가 포함된 문자열입니다.

다중 문서 트랜잭션의 경우 client에는 트랜잭션 내에서 작업을 실행할 가장 최근 클라이언트에 대한 정보가 저장됩니다.

currentOp.appName

작업을 실행한 클라이언트 애플리케이션의 식별자입니다. appName 연결 문자열 옵션을 사용하여 appName 필드에 대한 사용자 지정 값을 설정합니다.

currentOp.clientMetadata

클라이언트에 대한 추가 정보.

다중 문서 트랜잭션의 경우 client에는 트랜잭션 내에서 작업을 실행할 가장 최근 클라이언트에 대한 정보가 저장됩니다.

currentOp.currentOpTime

작업 시작 시간입니다.

currentOp.currentQueue

버전 8.0에 추가 되었습니다.

작업의 현재 대기열 입니다.

currentOp.currentQueue.name

작업의 현재 대기열 이름입니다.

참고

currentQueue 가 있고 nameingress 인 경우 작업은 인그레스 허용을 대기 중인 것입니다.

currentOp.currentQueue.totalTimeQueuedMicros

작업이 해당 대기열에서 소비한 총 누적 시간(단위: 마이크로초)입니다.

currentOp.queues

현재 작업의 ingressexecution 대기열에 대한 정보입니다.

currentOp.effectiveUsers

작업과 연결된 각 사용자에 대한 문서가 포함된 배열입니다. 각 사용자 문서에는 user 이름과 인증 db이(가) 포함되어 있습니다.

다음도 참조하세요.

currentOp.runBy

작업을 위해 effectiveUser(s)를 가장하는 각 사용자에 대한 문서를 포함하는 배열입니다. runBy 문서에는 user 이름과 인증 db가 포함되어 있습니다. 일반적으로 runBy 사용자는 __system 사용자입니다. 예를 들어 다음과 같습니다.

"runBy" : [
{
"user" : "__system",
"db" : "local"
}
]

샤딩된 클러스터에서만 사용 가능

currentOp.lsid

세션 식별자입니다.

작업이 세션과 연결된 경우에만 표시됩니다.

currentOp.transaction

다중 문서 트랜잭션 정보가 포함된 문서입니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

currentOp.transaction.parameters

다중 문서 트랜잭션에 대한 정보가 포함된 문서입니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

currentOp.transaction.parameters.txnNumber

트랜잭션 번호입니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

currentOp.transaction.parameters.autocommit

트랜잭션에 대해 자동 커밋이 켜져 있는지 여부를 나타내는 부울 플래그입니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

currentOp.transaction.parameters.readConcern

트랜잭션에 대한 읽기 고려입니다.

다중 문서 트랜잭션은 읽기 고려 "snapshot", "local""majority"를 지원합니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

currentOp.transaction.readTimestamp

트랜잭션의 작업에서 읽고 있는 스냅샷의 타임스탬프입니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

currentOp.transaction.startWallClockTime

트랜잭션이 시작되는 날짜 및 시간(표준 시간대 포함)입니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

currentOp.transaction.timeOpenMicros

트랜잭션의 지속 시간(마이크로초)입니다.

timeActiveMicrostimeInactiveMicros를 더한 값은 timeOpenMicros 와 같아야 합니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

currentOp.transaction.timeActiveMicros

트랜잭션이 활성화된 총 시간 즉, 트랜잭션이 실행 중인 시간입니다.

timeActiveMicrostimeInactiveMicros를 더한 값은 timeOpenMicros 와 같아야 합니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

currentOp.transaction.timeInactiveMicros

트랜잭션이 비활성화된 총 시간 즉, 트랜잭션이 실행 중인 작업이 없는 경우입니다.

timeInactiveMicrostimeActiveMicros를 더한 값은 timeOpenMicros 와 같아야 합니다.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

currentOp.transaction.expiryTime

트랜잭션이 시간 초과되어 중단될 날짜와 시간(표준 시간대 포함)입니다.

currentOp.transaction.expiryTimecurrentOp.transaction.startWallClockTime + transactionLifetimeLimitSeconds와 같습니다.

자세한 내용은 트랜잭션의 런타임 제한을 참조하세요.

작업이 다중 문서 트랜잭션의 일부인 경우에만 표시됩니다.

currentOp.twoPhaseCommitCoordinator

둘 중 하나에 관한 정보입니다.

  • 쓰기 작업이 여러 샤드에 걸쳐 있는 트랜잭션에 대한 커밋 조정 지표입니다.

    커밋 조정은 샤드에 의해 처리되며, currentOp(mongos 또는 샤드 노드에서 실행)은 현재 해당 샤드에서 조정 중인 트랜잭션에 대해서만 샤드의 조정 정보를 반환합니다.

    커밋 조정 지표만 필터링하려면 다음을 수행합니다.

    db.currentOp( { desc: "transaction coordinator" })
  • 특정 커밋 조정 작업(즉, currentOp.typeop이고 currentOp.desc는 트랜잭션 코디네이터에 의해 생성된 "TransactionCoordinator").

currentOp.twoPhaseCommitCoordinator.lsid

멀티 샤드 트랜잭션의 세션 식별자입니다.

lsidtxnNumber의 조합은 트랜잭션을 식별합니다.

커밋 조정 지표와 특정 조정 작업 모두에 사용할 수 있습니다.

currentOp.twoPhaseCommitCoordinator.txnNumber

멀티 샤드 트랜잭션의 트랜잭션 번호입니다.

txnNumberlsid의 조합은 트랜잭션을 식별합니다.

커밋 조정 지표와 특정 조정 작업 모두에 사용할 수 있습니다.

currentOp.twoPhaseCommitCoordinator.action

트랜잭션 코디네이터에 의해 생성된 특정 커밋 조정 작업:

  • "sendingPrepare"

  • "sendingCommit"

  • "sendingAbort"

  • "writingParticipantList"

  • "writingDecision"

  • "deletingCoordinatorDoc"

특정 조정 작업에만 사용할 수 있습니다.

currentOp.twoPhaseCommitCoordinator.startTime

action 의 시작 날짜 및 시간입니다.

특정 조정 작업에만 사용할 수 있습니다.

currentOp.twoPhaseCommitCoordinator.numParticipants

이 커밋에 참여하는 샤드 수입니다.

커밋 조정 지표에만 사용할 수 있습니다.

currentOp.twoPhaseCommitCoordinator.state

커밋 조정 프로세스의 현재 단계/상태입니다.

단계
설명
inactive
커밋에 적극적으로 참여하지 않습니다.
writingParticipantList
해당 멀티 샤드 트랜잭션의 일부인 샤드 목록의 로컬 레코드를 작성합니다.
waitingForVotes
참가자가 커밋 또는 중단 투표로 응답할 때까지 기다립니다.
writingDecision
투표에 따라 커밋하거나 중단하기로 한 코디네이터의 결정에 대한 로컬 기록을 작성합니다.
waitingForDecisionAck
참가자가 코디네이터의 커밋 또는 중단 결정을 승인할 때까지 기다립니다.
deletingCoordinatorDoc
커밋 결정의 로컬 레코드를 삭제합니다.

커밋 조정 지표에만 사용할 수 있습니다.

currentOp.twoPhaseCommitCoordinator.stepDurations 도 참조하세요.

currentOp.twoPhaseCommitCoordinator.commitStartTime

커밋이 시작된 날짜와 시간입니다.

커밋 조정 지표에만 사용할 수 있습니다.

currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailover

커밋을 조정하는 샤드의 페일오버로 인해 커밋 조정이 재시작되었는지 여부를 나타내는 부울입니다.

hasRecoveredFromFailover값이 true인 경우 currentOp.twoPhaseCommitCoordinator.stepDurations에 지정된 시간이 모든 단계에서 정확하지 않을 수 있습니다.

커밋 조정 지표에만 사용할 수 있습니다.

currentOp.twoPhaseCommitCoordinator.stepDurations

완료되었거나 진행 중인 커밋 조정 steps/state의 지속 시간(마이크로초)이 포함된 문서입니다.

"stepDurations" : {
"writingParticipantListMicros" : NumberLong(17801),
"totalCommitDurationMicros" : NumberLong(42488463),
"waitingForVotesMicros" : NumberLong(30378502),
"writingDecisionMicros" : NumberLong(15015),
"waitingForDecisionAcksMicros" : NumberLong(12077145),
"deletingCoordinatorDocMicros" : NumberLong(6009)
},

currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailover값이 true인 경우 stepDurations에 지정된 시간이 모든 단계에서 정확하지 않을 수 있습니다.

inactive 상태에 있는 코디네이터의 경우 문서가 비어 있습니다.

"stepDurations" : {
}

커밋 조정 지표에만 사용할 수 있습니다.

currentOp.twoPhaseCommitCoordinator.state를 참조하세요.

currentOp.twoPhaseCommitCoordinator.decision

커밋/중단 결정이 포함된 문서입니다. 예를 들면 다음과 같습니다.

  • 커밋 결정을 위한 경우:

    "decision" : {
    "decision" : "commit",
    "commitTimestamp" : Timestamp(1572034669, 3)
    }
  • 중단 결정의 경우:

    "decision" : {
    "decision" : "abort",
    "abortStatus" : {
    "code" : 282,
    "codeName" : "TransactionCoordinatorReachedAbortDecision",
    "errmsg" : "Transaction exceeded deadline"
    }
    }

커밋 조정 지표에만 사용할 수 있습니다.

currentOp.twoPhaseCommitCoordinator.deadline

커밋을 완료해야 하는 날짜와 시간입니다.

커밋 조정 지표에만 사용할 수 있습니다.

currentOp.opid

작업의 식별자입니다. 이 값을 mongoshdb.killOp()로 전달하여 작업을 종료할 수 있습니다.

경고

실행 중인 작업은 매우 주의해서 종료합니다. 클라이언트가 시작한 작업을 종료할 때만 db.killOp()을(를) 사용하고 내부 데이터베이스 작업은 종료하지 않도록 합니다.

currentOp.active

작업이 시작되었는지 여부를 지정하는 부울 값입니다. 작업이 시작된 경우 값은 true이고 작업이 유휴 연결 또는 현재 유휴 상태인 내부 스레드와 같은 유휴 상태인 경우에는 false입니다. 작업이 다른 작업으로 대체된 경우에도 작업이 활성화될 수 있습니다. 일부 비활성 백그라운드 스레드(예: 비활성 signalProcessingThread)의 경우 MongoDB는 다양한 빈 필드를 억제합니다.

currentOp.secs_running

작업 시간(초)입니다. MongoDB는 작업 시작 시간에서 현재 시간을 빼서 이 값을 계산합니다.

작업이 실행 중인 경우, 즉 activetrue인 경우에만 표시됩니다.

currentOp.microsecs_running

마이크로초 단위의 작업 시간입니다. MongoDB는 작업 시작 시간에서 현재 시간을 빼서 이 값을 계산합니다.

작업이 실행 중인 경우, 즉 activetrue인 경우에만 표시됩니다.

currentOp.op

특정 작업 유형을 식별하는 문자열입니다. currentOp.typeop인 경우에만 존재합니다.

가능한 값은 다음과 같습니다.

  • "none"

  • "update"

  • "insert"

  • "query"

  • "command"

  • "getmore"

  • "remove"

  • "killcursors"

"query" 작업에는 읽기 작업이 포함됩니다.

"command" 연산에는 createIndexesfindAndModify와 같은 대부분의 명령이 포함됩니다.

currentOp.ns

작업이 대상으로 하는 네임스페이스입니다 . 네임스페이스는 데이터베이스 이름과 점(.)으로 연결된 컬렉션 이름으로 구성됩니다(즉, "<database>.<collection>").

currentOp.command

이 작업과 관련된 전체 명령 객체가 포함된 문서입니다.

예를 들어, 다음 출력에는 test 데이터베이스의 items 컬렉션에 대한 find 작업에 대한 명령 객체가 포함되어 있습니다.

"command" : {
"find" : "items",
"filter" : {
"sku" : 1403978
},
...
"$db" : "test"
}

다음 예시 출력에는 test 데이터베이스의 items 컬렉션에서 커서 ID가 19234103609인 명령에 의해 생성된 getMore 작업에 대한 명령 객체가 포함되어 있습니다.

"command" : {
"getMore" : NumberLong("19234103609"),
"collection" : "items",
"batchSize" : 10,
...
"$db" : "test"
},

명령 문서가 1KB를 초과하는 경우 문서의 형식은 다음과 같습니다.

"command" : {
"$truncated": <string>,
"comment": <string>
}

$truncated 필드는 문서의 comment 필드(있는 경우)를 제외한 문서의 문자열 요약을 포함합니다. 요약이 여전히 1KB를 초과하면 문자열 끝에 줄임표(...)로 표시되어 추가로 잘립니다.

comment 필드는 주석이 작업에 전달된 경우 표시됩니다. 모든 데이터베이스 명령에 주석을 첨부할 수 있습니다.

currentOp.planSummary

커서가 컬렉션 스캔(COLLSCAN)을 사용할지 인덱스 스캔(IXSCAN { ... })을 사용할지 지정합니다.

IXSCAN에는 사용된 인덱스의 사양 문서도 포함되어 있습니다.

currentOp.prepareReadConflicts

쓰기가 있는 준비된 트랜잭션이 커밋되거나 중단될 때까지 현재 작업에서 기다려야 하는 횟수입니다.

기다리는 동안 현재 작업은 필요한 잠금 및 스토리지 엔진 리소스를 계속 보유합니다.

currentOp.writeConflicts

현재 작업이 동일한 문서의 다른 쓰기 작업과 충돌한 횟수입니다.

currentOp.cursor

getmore 작업에 대한 커서 정보가 포함된 문서입니다. 여기서 opgetmore입니다.

getmore가 커서 정보에 액세스하기 전에 getmore 작업을 보고하는 경우 cursor 필드를 사용할 수 없습니다.

currentOp.cursor.cursorId

커서의 ID입니다.

currentOp.cursor.createdDate

커서가 생성된 날짜 및 시간입니다.

currentOp.cursor.lastAccessDate

커서를 마지막으로 사용한 날짜와 시간입니다.

currentOp.cursor.nDocsReturned

커서가 반환한 누적 문서 수입니다.

currentOp.cursor.nBatchesReturned

커서가 반환한 누적 배치 수입니다.

currentOp.cursor.noCursorTimeout

커서가 유휴 상태일 때 (즉, 커서에 noTimeout 옵션이 설정된 경우) 시간 초과가 발생하지 않음을 나타내는 플래그입니다.

  • true인 경우 유휴 상태에서도 커서가 시간 초과되지 않습니다.

  • False인 경우 유휴 상태일 때 커서가 시간 초과됩니다.

다음도 참조하세요.

currentOp.cursor.tailable

커서가 고정 사이즈 컬렉션의 테일 커서(tailable cursor)인지 여부를 나타내는 플래그입니다. 테일 커서(tailable cursor)는 클라이언트가 초기 커서에서 결과를 소모한 후에도 열린 상태로 유지됩니다.

다음도 참조하세요.

currentOp.cursor.awaitData

테일 커서(tailable cursor)가 데이터를 반환하지 않는 대신 새 데이터를 기다리는 동안 커서의 getMore 명령을 일시적으로 차단해야 하는지 여부를 나타내는 플래그입니다.

테일 커서가 아닌 경우 값은 항상 False입니다.

다음도 참조하세요.

currentOp.cursor.originatingCommand

originatingCommand 필드에는 원래 커서를 생성한 전체 명령 객체(예: find 또는 aggregate)가 포함됩니다.

currentOp.cursor.planSummary

커서가 컬렉션 스캔(COLLSCAN)을 사용할지 인덱스 스캔(IXSCAN { ... })을 사용할지 지정합니다.

IXSCAN에는 사용된 인덱스의 사양 문서도 포함되어 있습니다.

currentOp.cursor.operationUsingCursorId

커서를 사용한 작업의 opid입니다.

커서가 유휴 상태가 아닌 경우에만 표시됩니다.

currentOp.locks

locks 문서는 작업이 현재 보유하고 있는 잠금의 유형 및 모드를 보고합니다. 가능한 잠금 유형은 다음과 같습니다.

잠금 유형
설명
ParallelBatchWriterMode

병렬 배치 쓰기 모드의 잠금을 나타냅니다.

이전 버전에서는 PBWM 정보가 Global 잠금 정보의 일부로 보고되었습니다.

ReplicationStateTransition
레플리카 세트 멤버 상태 전환에 취한 잠금을 나타냅니다.
Global
글로벌 락을 나타냅니다.
Database
데이터베이스 락을 나타냅니다.
Collection
컬렉션 락을 나타냅니다.
Mutex
뮤텍스를 나타냅니다.
Metadata
메타데이터 락을 나타냅니다.
DDLDatabase

DDL 데이터베이스 잠금을 나타냅니다.

버전 7.1에 새로 추가되었습니다.

DDLCollection

DDL collection 잠금을 나타냅니다.

버전 7.1에 새로 추가되었습니다.

oplog
oplog 락을 나타냅니다.

가능한 모드는 다음과 같습니다.

잠금 모드
설명
R
공유(S) 락을 나타냅니다.
W
독점(X) 락을 나타냅니다.
r
인텐트 공유(IS) 락을 나타냅니다.
w
인텐트 독점(IX) 락을 나타냅니다.
currentOp.admissionPriority

내부용입니다. 값은 스토리지 엔진 작업을 수행하기 위해 티켓을 획득하려고 할 때 작업의 우선순위입니다.

가능한 값은 "낮음", "보통", "즉시" 입니다. 값이 "낮은" 작업만 보고됩니다.

샘플 currentOp 출력:

{
type: 'op',
host: 'ip-10-122-5-147:27017',
desc: 'JournalFlusher',
active: true,
currentOpTime: '2022-10-11T12:45:52.053+00:00',
opid: 201,
op: 'none',
ns: '',
command: {},
numYields: 0,
admissionPriority: 'low',
locks: {},
waitingForLock: false,
lockStats: {},
waitingForFlowControl: false,
flowControlStats: {}
}

admissionPriority 값은 느린 로그에도 보고됩니다.

버전 6.3에 추가.

currentOp.waitingForLock

부울 값을 반환합니다. 작업이 잠금을 기다리고 있는 경우 waitingForLocktrue이고 작업에 필요한 잠금이 있는 경우 false입니다.

currentOp.msg

msg는 작업의 상태와 진행 상황을 설명하는 메시지를 제공합니다. 인덱싱 또는 mapReduce 작업의 경우 필드는 완료율을 보고합니다.

currentOp.progress

mapReduce 또는 인덱싱 작업의 진행 상황을 보고합니다. progress 필드는 msg 필드의 완료율에 해당합니다. progress는 다음 정보를 지정합니다.

currentOp.progress.done

완료된 수를 보고합니다.

currentOp.progress.total

총 개수를 보고합니다.

currentOp.killPending

작업이 현재 종료 플래그로 지정된 경우 true를 반환합니다. 작업이 다음 안전 종료 점에 도달하면 작업이 종료됩니다.

currentOp.numYields

numYields 다른 작업을 완료할 수 있도록 작업이 양보된 횟수를 보고하는 카운터입니다.

일반적으로 작업은 MongoDB가 아직 메모리로 완전히 읽지 않은 데이터에 액세스해야 할 때 양보합니다. 이를 통해 MongoDB가 산출 작업에 대한 데이터를 읽는 동안 메모리에 데이터가 있는 다른 작업을 신속하게 완료할 수 있습니다.

currentOp.dataThroughputLastSecond

마지막 1초 동안 validate 작업으로 처리된 데이터 양(MiB)입니다. 현재 문서를 스캔하고 있는 validate 작업에만 사용할 수 있습니다. 예시:

"msg" : "Validate: scanning documents Validate: scanning documents: 7258/24000 30%",
"progress" : {
"done" : 7258,
"total" : 24000
},
"numYields" : 0,
"dataThroughputLastSecond" : 15.576952934265137,
"dataThroughputAverage" : 15.375944137573242,
currentOp.dataThroughputAverage

validate 작업으로 처리된 평균 데이터 양(MiB)입니다. 현재 문서를 스캔하고 있는 validate 작업에만 사용할 수 있습니다. 예시:

"msg" : "Validate: scanning documents Validate: scanning documents: 7258/24000 30%",
"progress" : {
"done" : 7258,
"total" : 24000
},
"numYields" : 0,
"dataThroughputLastSecond" : 15.576952934265137,
"dataThroughputAverage" : 15.375944137573242,
currentOp.fsyncLock

데이터베이스가 현재 fsync write/snapshot에 대해 잠겼는지 여부를 지정합니다.

잠긴 경우에만 나타납니다. 즉, fsyncLocktrue인 경우입니다.

currentOp.info

db.fsyncLock()에서 데이터베이스 잠금을 해제하는 방법에 대한 정보입니다. fsyncLocktrue인 경우에만 나타납니다.

currentOp.lockStats

각 잠금 유형 및 모드(잠금 유형 및 모드에 관한 설명은 currentOp.locks 참조)에 대해 다음 정보를 반환합니다.

currentOp.lockStats.acquireCount

작업이 지정된 모드에서 잠금을 획득한 횟수입니다.

currentOp.lockStats.acquireWaitCount

잠금이 충돌 모드에서 유지되었기 때문에 작업이 acquireCount개의 잠금에 도달할 때까지 기다려야 했던 횟수입니다. acquireWaitCountacquireCount보다 작거나 같습니다.

currentOp.lockStats.timeAcquiringMicros

작업이 잠금을 획득하기 위해 대기해야 했던 누적 시간(마이크로초)입니다.

timeAcquiringMicrosacquireWaitCount로 나누면 특정 잠금 모드의 대략적인 평균 대기 시간을 구할 수 있습니다.

currentOp.lockStats.deadlockCount

잠금 획득을 기다리는 동안 작업에서 교착 상태가 발생한 횟수입니다.

currentOp.waitingForFlowControl

작업이 흐름 제어를 기다리는 중인지 여부를 나타내는 부울입니다.

currentOp.flowControlStats

이 작업에 대한 흐름 제어 통계입니다.

currentOp.flowControlStats.acquireCount

이 작업으로 티켓을 획득한 횟수입니다.

currentOp.flowControlStats.acquireWaitCount

이 작업이 티켓을 획득하기 위해 대기한 횟수입니다.

currentOp.flowControlStats.timeAcquiringMicros

이 작업이 티켓을 획득하기 위해 대기한 총 시간입니다.

currentOp.totalOperationTimeElapsedSecs

현재 리샤딩 작업의 경과된 총 시간(초)입니다. 새 리샤딩 작업이 시작될 때 시간은 0으로 설정됩니다.

리샤딩 작업이 진행 중인 경우에만 표시됩니다.

버전 5.0에 추가.

MongoDB 6.1부터 이 지표는 리샤딩 중에 코디네이터에서도 사용할 수 있습니다.

currentOp.updatesApplied

적용된 업데이트의 수입니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 6.1에 추가.

currentOp.remainingOperationTimeEstimatedSecs

remainingOperationTimeEstimatedSecs: 현재 리샤딩 작업에 남은 예상 시간(초)입니다. 새로운 리샤딩 작업이 시작되면 -1로 반환됩니다.

시작 시간:

  • MongoDB 5.0(MongoDB 6.1 이전)에서는 리샤딩 작업 중에 수신자 샤드에서만 remainingOperationTimeEstimatedSecs을(를) 사용할 수 있습니다.

  • MongoDB 6.1, remainingOperationTimeEstimatedSecs 리샤딩 작업 중에 코디네이터에서도 사용할 수 있습니다.

리샤딩 작업은 다음 단계를 순서대로 수행합니다.

  1. 복제 단계에서는 현재 수집 데이터를 복제합니다.

  2. 따라잡기 단계에서는 보류 중인 모든 쓰기 작업을 리샤딩된 컬렉션에 적용합니다.

remainingOperationTimeEstimatedSecs 비관치 추정으로 설정됩니다.

  • 따라잡기 단계 시간 추정은 상대적으로 긴 시간인 클론 단계 시간으로 설정됩니다.

  • 실제로 보류 중인 쓰기 작업이 적은 경우 실제 따라잡기 단계 시간은 상대적으로 짧습니다.

버전 5.0에 추가.

currentOp.allShardsLowestRemainingOperationTimeEstimatedSecs

모든 샤드에 걸쳐 계산되며, 남은 시간(초)의 가장 낮은 추정치입니다.

리샤딩 작업이 진행되는 동안 코디네이터에만 존재합니다.

버전 6.1에 추가.

currentOp.allShardsHighestRemainingOperationTimeEstimatedSecs

모든 샤드에 걸쳐 계산되며, 남은 시간(초)의 가장 높은 추정치입니다.

리샤딩 작업이 진행되는 동안 코디네이터에만 존재합니다.

버전 6.1에 추가.

currentOp.approxDocumentsToCopy

리샤딩 작업 중 도너 샤드에서 수신자 샤드로 복사할 문서의 대략적인 개수입니다. 이 숫자는 리샤딩 작업 시작 시 설정되는 추정치이며 설정된 후에 변경되지 않습니다. 새로운 리샤딩 작업이 시작되면 이 숫자는 0으로 설정됩니다. 리샤딩 후 데이터 분포가 완전히 균일하지 않은 경우 $currentOp.documentsCopied$currentOp.bytesCopied가 각각 $currentOp.approxDocumentsToCopy$currentOp.approxBytesToCopy를 초과할 수 있습니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 5.0에 추가.

currentOp.documentsCopied

리샤딩 작업 중에 양식 도너 샤드를 수신자 샤드로 복사한 문서 수입니다. 새로운 리샤딩 작업이 시작되면 이 숫자는 0으로 설정됩니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 5.0에 추가.

currentOp.approxBytesToCopy

리샤딩 작업 중에 도너 샤드에서 수신자 샤드로 복사할 대략적인 바이트 수입니다. 이 숫자는 리샤딩 작업 시작 시 설정되는 추정치이며 설정된 후에 변경되지 않습니다. 새로운 리샤딩 작업이 시작되면 이 숫자는 0으로 설정됩니다. 리샤딩 후 데이터 분포가 완전히 균일하지 않은 경우 $currentOp.documentsCopied$currentOp.bytesCopied가 각각 $currentOp.approxDocumentsToCopy$currentOp.approxBytesToCopy를 초과할 수 있습니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 5.0에 추가.

currentOp.bytesCopied

리샤딩 작업 중에 도너 샤드에서 수신자 샤드로 복사된 바이트 수입니다. 새로운 리샤딩 작업이 시작되면 이 숫자는 0으로 설정됩니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 5.0에 추가.

currentOp.countWritesToStashCollections

수신자 스태시 컬렉션에 대한 쓰기 횟수입니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 6.1에 추가.

currentOp.countWritesDuringCriticalSection

기증자의 중요한 섹션 동안 시도된 쓰기 수입니다.

리샤딩 작업이 진행되는 동안 기증자 샤드에만 존재합니다.

버전 6.1에 추가.

currentOp.countReadsDuringCriticalSection

기증자의 임계 섹션 동안 시도된 읽기 수입니다.

리샤딩 작업이 진행되는 동안 기증자 샤드에만 존재합니다.

버전 6.1에 추가.

currentOp.deletesApplied

임시 리샤딩 컬렉션에 적용된 삭제 수입니다. 삭제와 관련된 각 oplog 항목은 카운터를 1씩 증가시킵니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 6.1에 추가.

currentOp.insertsApplied

임시 리샤딩 컬렉션에 적용된 삽입 수입니다. 삽입과 관련된 각 oplog 항목은 카운터를 1씩 증가시킵니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 6.1에 추가.

currentOp.totalCopyTimeElapsedSecs

현재 리샤딩 작업을 위해 기증자 샤드에서 수신자 샤드로 진행 중인 데이터 복사 작업에 소요된 총 경과 시간(초)입니다. 새 리샤딩 작업이 시작될 때 시간은 0으로 설정됩니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 5.0에 추가.

MongoDB 6.1부터 이 지표는 리샤딩 중에 코디네이터에서도 사용할 수 있습니다.

currentOp.oplogEntriesFetched

현재 리샤딩 작업을 위해 oplog에서 가져온 항목 수입니다. 새로운 리샤딩 작업이 시작되면 이 숫자는 0으로 설정됩니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 5.0에 추가.

currentOp.oplogEntriesApplied

현재 리샤딩 작업을 위해 oplog에 적용된 항목 수입니다. 새로운 리샤딩 작업이 시작되면 이 숫자는 0으로 설정됩니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 5.0에 추가.

currentOp.totalApplyTimeElapsedSecs

현재 리샤딩 작업의 적용 단계에 소요된 총 경과 시간 (초) 입니다. 적용 단계에서 수신자 샤드는 oplog 항목을 적용하여 기증자 샤드에서 새로 수신되는 쓰기를 기반으로 데이터를 수정합니다. 새 리샤딩 작업이 시작될 때 시간은 0으로 설정됩니다.

리샤딩 작업이 진행 중인 경우에만 수신자 샤드에 존재합니다.

버전 5.0에 추가.

MongoDB 6.1부터 이 지표는 리샤딩 중에 코디네이터에서도 사용할 수 있습니다.

currentOp.countWritesDuringCriticalSection

현재 리샤딩 작업의 중요 섹션에서 수행된 쓰기 수입니다. 중요 섹션은 현재 리샤딩되고 있는 컬렉션에 새로 들어오는 쓰기를 방지합니다. 새로운 리샤딩 작업이 시작되면 이 숫자는 0으로 설정됩니다.

리샤딩 작업이 진행되는 동안 기증자 샤드에만 존재합니다.

버전 5.0에 추가.

currentOp.totalCriticalSectionTimeElapsedSecs

현재 리샤딩 작업의 중요 섹션에 대한 총 경과 시간(초)입니다. 중요 섹션은 현재 리샤딩되고 있는 컬렉션에 새로 들어오는 쓰기를 방지합니다. 새 리샤딩 작업이 시작될 때 시간은 0으로 설정됩니다.

리샤딩 작업이 진행되는 동안 기증자 샤드에만 존재합니다.

버전 5.0에 추가.

MongoDB 6.1부터 이 지표는 리샤딩 중에 코디네이터에서도 사용할 수 있습니다.

currentOp.donorState

리샤딩 작업을 위한 기증자 샤드의 현재 상태입니다. 새 리샤딩 작업이 시작되면 상태가 unused(으)로 설정됩니다.

리샤딩 작업이 진행되는 동안 기증자 샤드에만 존재합니다.

상태
설명
unused
리샤딩 작업이 시작되거나 프라이머리 페일오버에서 복구되려고 합니다.
preparing-to-donate
기증자 샤드가 수신자 샤드에 데이터를 기증할 준비를 하고 있습니다.
donating-initial-data
기증자 샤드가 수신자 샤드에 데이터를 기증 중입니다.
donating-oplog-entries
기증자 샤드가 수신자 샤드에 oplog 항목을 기증 중입니다.
preparing-to-block-writes
기증자 샤드가 리샤딩 중인 컬렉션에 새로 수신되는 쓰기 연산을 방지하려고 합니다.
error
리샤딩 연산 중에 오류가 발생했습니다.
blocking-writes
기증자 샤드가 새로 수신되는 쓰기 연산을 방지하고 있습니다. 또한 기증자 샤드는 새로 수신되는 쓰기를 방지한 사실을 모든 수신자 샤드에 알렸습니다.
done
기증자 샤드가 이전의 샤드 컬렉션을 제거했으며 리샤딩 연산이 완료되었습니다.

버전 5.0에 추가.

currentOp.recipientState

리샤딩 작업을 위한 수신자 샤드의 현재 상태입니다. 새 리샤딩 작업이 시작되면 상태가 unused(으)로 설정됩니다.

리샤딩 작업이 진행되는 동안 기증자 샤드에만 존재합니다.

상태
설명
unused
리샤딩 작업이 시작되거나 프라이머리 페일오버에서 복구되려고 합니다.
awaiting-fetch-timestamp
수신자 샤드는 기부자 샤드가 데이터를 기부할 준비가 되기를 기다리고 있습니다.
creating-collection
수신자 샤드가 새 샤드 컬렉션을 생성 중입니다.
cloning
수신자 샤드가 기증자 샤드로부터 데이터를 수신 중입니다.
applying
수신자 샤드가 기증자 샤드로부터 새로 수신되는 쓰기를 기반으로 데이터 사본을 수정하기 위해 oplog 항목을 적용 중입니다.
error
리샤딩 연산 중에 오류가 발생했습니다.
strict-consistency
수신자 샤드의 임시 컬렉션에는 모든 데이터 변경사항이 저장되어 있습니다.
done
리샤딩 연산이 완료되었습니다.

버전 5.0에 추가.

currentOp.coordinatorState

현재 리샤딩 작업의 리샤딩 코디네이터 상태입니다. 리샤딩 코디네이터는 config 서버 프라이머리에서 실행되는 작업입니다. 새 리샤딩 작업이 시작되면 상태가 unused로 설정됩니다.

조정 config 서버에만 존재합니다.

상태
설명
unused
리샤딩 작업이 시작되거나 프라이머리 페일오버에서 복구되려고 합니다.
initializing
리샤딩 조정자가 조정자 문서를 config.reshardingOperations에 삽입한 후 원본 컬렉션의 config.collections 항목에 reshardingFields을(를) 추가했습니다.
preparing-to-donate

리샤딩 조정자가

  • 임시 리샤딩 컬렉션의 config.collections 항목을 생성했습니다.

  • 새 샤드 키를 기준으로 한 범위의 config.chunks에 항목을 삽입했습니다.

  • 새 샤드 키에 연결된 모든 구역의 config.tags에 항목을 삽입했습니다.

조정자는 리샤딩 연산을 시작하라고 참여자 샤드에 알립니다. 그런 다음 조정자는 모든 기증자 샤드가 minFetchTimestamp을(를) 선택하고 기증할 준비가 될 때까지 대기합니다.

cloning
리샤딩 조정자는 데이터를 수신자 샤드에 기증하라고 기증자 샤드에 알립니다. 조정자는 모든 수신자가 기증자로부터의 데이터 복제를 완료할 때까지 대기합니다.
applying
리샤딩 조정자는 기증자 샤드로부터 새로 수신되는 쓰기를 기반으로 데이터 사본을 수정하라고 수신자 샤드에 알립니다. 조정자는 모든 수신자가 oplog 항목 적용을 완료할 때까지 대기합니다.
blocking-writes
리샤딩 조정자는 리샤딩 중인 컬렉션에 새로 수신되는 쓰기 연산을 방지하라고 기증자 샤드에 알립니다. 그런 다음 조정자는 모든 수신자가 모든 데이터를 변경할 때까지 대기합니다.
aborting
리샤딩 연산 중에 복구 불가능한 오류가 발생했거나 abortReshardCollection 명령(또는 sh.abortReshardCollection() 메서드)이 실행되었습니다.
committing
리샤딩 조정자는 임시 리샤딩 컬렉션의 config.collections 항목을 제거합니다. 그런 다음 조정자는 소스 컬렉션의 항목에 recipientFields을(를) 추가합니다.

버전 5.0에 추가.

currentOp.opStatus

이 지표는 버전 6.1에서 제거되었습니다.

버전 6.1에서 변경되었습니다.

currentOp.collUuid

샘플 collection의 UUID입니다.

이 필드는 쿼리 샘플링과 관련된 문서에만 표시됩니다. 자세한 내용은 샘플링된 쿼리를 참조하세요.

버전 7.0에 추가.

currentOp.startTime

쿼리 샘플링이 시작된 시간입니다.

이 필드는 쿼리 샘플링과 관련된 문서에만 표시됩니다. 자세한 내용은 샘플링된 쿼리를 참조하세요.

버전 7.0에 추가.

currentOp.samplesPerSecond

초당 샘플링할 최대 쿼리 수입니다.

샤딩된 클러스터에서는 mongod 대신 mongos에서 이 내용이 보고됩니다. 복제본 세트의 경우 mongod에서 이 내용이 보고됩니다.

이 필드는 쿼리 샘플링과 관련된 문서에만 표시됩니다. 자세한 내용은 샘플링된 쿼리를 참조하세요.

버전 7.0에 추가.

currentOp.sampledReadsCount

샘플링된 읽기 쿼리 수입니다.

이 필드는 쿼리 샘플링과 관련된 문서에만 표시됩니다. 자세한 내용은 샘플링된 쿼리를 참조하세요.

버전 7.0에 추가.

currentOp.sampledWritesCount

샘플링된 쓰기 쿼리 수입니다.

이 필드는 쿼리 샘플링과 관련된 문서에만 표시됩니다. 자세한 내용은 샘플링된 쿼리를 참조하세요.

버전 7.0에 추가.

currentOp.sampledReadsBytes

샘플링된 읽기 쿼리의 크기(바이트)입니다.

복제본 세트에서는 모든 mongod에 대해 보고됩니다.

샤딩된 클러스터에서 --shardsvr이(가) 있는 mongod에 대해서만 보고되었습니다.

이 필드는 쿼리 샘플링과 관련된 문서에만 표시됩니다. 자세한 내용은 샘플링된 쿼리를 참조하세요.

버전 7.0에 추가.

currentOp.sampledWritesBytes

샘플링된 쓰기 쿼리의 크기(바이트)입니다.

복제본 세트에서는 모든 mongod에 대해 보고됩니다.

샤딩된 클러스터에서 --shardsvr이(가) 있는 mongod에 대해서만 보고되었습니다.

이 필드는 쿼리 샘플링과 관련된 문서에만 표시됩니다. 자세한 내용은 샘플링된 쿼리를 참조하세요.

버전 7.0에 추가.

돌아가기

createIndexes