On this page本页内容
currentOp
¶Returns a document that contains information on in-progress operations for the mongod
instance.
currentOp
has the following form:
The mongo
shell provides the db.currentOp()
wrapper for the currentOp
command.
Note
Because currentOp
command and db.currentOp()
helper returns the results in a single document, the total size of the currentOp
result set is subject to the maximum 16MB BSON size limit for documents.
Starting in version 3.6, MongoDB provides $currentOp
aggregation stage. The $currentOp
stage returns a cursor over a stream of documents, each of which reports a single operation. Each operation document is subject to the 16MB BSON limit, but unlike the currentOp
command, there is no limit on the overall size of the result set.
For this reason, the $currentOp
aggregation stage is preferred over the currentOp
command and its mongo
shell helper db.currentOp()
.
currentOp
must run against the admin
database, and it can accept several optional fields.
"$ownOps" |
Boolean. If set to On New in version 3.2.9. |
"$all" |
Boolean. If set to
|
<filter> | Specify filter conditions on the Output Fields. See Examples. |
comment |
A comment can be any valid BSON type (string, integer, object, array, etc).
|
currentOp
and the database profiler report the same basic diagnostic information for all CRUD operations, including the following:
aggregate
count
delete
distinct
find
(OP_QUERY and command
)findAndModify
getMore
(OP_GET_MORE and command
)insert
mapReduce
update
These operations are also included in the logging of slow queries (see slowOpThresholdMs
for more information about slow query logging).
On systems running with authorization
, the user must have access that includes the inprog
privilege action.
Starting in 3.2.9, users can use $ownOps
on mongod
instances to view their own operations without the inprog
privilege action.
See also参阅
The following examples use the currentOp
command with various query documents to filter the output.
The following example returns information on all write operations that are waiting for a lock:
Changed in version 3.6.在版本3.6中更改。
The following example returns information on all active running operations that have never yielded:
The following example returns information on all active operations for database db1
that have been running longer than 3 seconds:
Changed in version 3.6.
The following example returns information on index creation operations:
currentOp.
type
¶New in version 4.2.版本4.2中的新功能。
The type of operation. Values are either:
op
idleSession
idleCursor
If the currentOp.type
is op
, currentOp.op
provides details on the specific operation.
currentOp.
host
¶The name of the host against which the operation is run.
currentOp.
desc
¶A description of the client. This string includes the connectionId
.
currentOp.
connectionId
¶An identifier for the connection where the operation originated.
currentOp.
client
¶A string with information about where the operation originated.
For multi-document transactions, client
stores information about the most recent client to run an operation inside the transaction.
currentOp.
appName
¶A string with information about the type of client which made the request.
currentOp.
clientMetadata
¶Additional information on the client.
For multi-document transactions, client
stores information about the most recent client to run an operation inside the transaction.
currentOp.
currentOpTime
¶The start time of the operation.
New in version 3.6.版本3.6中的新功能。
currentOp.
effectiveUsers
¶An array that contains a document for each user associated with the operation. Each user document contains the user
name and the authentication db
.
See also参阅
New in version 4.2.版本4.2中的新功能。
currentOp.
runBy
¶An array that contains a document for each user who is impersonating the effectiveUser(s)
for the operation. The runBy document contains the user
name and the authentication db
. In general, the runBy user is the __system
user; e.g.
Only available on sharded clusters
New in version 4.2.版本4.2中的新功能。
currentOp.
lsid
¶The session identifier.
Only present if the operation is associated with a session.
New in version 3.6.版本3.6中的新功能。
currentOp.
transaction
¶A document that contains multi-document transaction information.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.版本4.0中的新功能。
currentOp.transaction.
parameters
¶A document that contains information on multi-document transaction.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.版本4.0中的新功能。
currentOp.transaction.parameters.
txnNumber
¶The transaction number.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.版本4.0中的新功能。
currentOp.transaction.parameters.
autocommit
¶A boolean flag that indicates if autocommit is on for the transaction.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
currentOp.transaction.parameters.
readConcern
¶The read concern for the transaction.
Multi-document transactions support read concern "snapshot"
, "local"
, and "majority"
.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
currentOp.transaction.
readTimestamp
¶The timestamp of the snapshot being read by the operations in the transaction.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
currentOp.transaction.
startWallClockTime
¶The date and time (with time zone) of the transaction start.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
currentOp.transaction.
timeOpenMicros
¶The duration of the transaction in microseconds.
The timeActiveMicros
value added to the timeInactiveMicros
should equal the timeOpenMicros
.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
currentOp.transaction.
timeActiveMicros
¶The total amount of time that the transaction has been active; i.e. when the transaction had operations running.
The timeActiveMicros
value added to the timeInactiveMicros
should equal the timeOpenMicros
.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
currentOp.transaction.
timeInactiveMicros
¶The total amount of time that the transaction has been inactive; i.e. when the transaction had no operations running.
The timeInactiveMicros
value added to the timeActiveMicros
should equal the timeOpenMicros
.
Only present if the operation is part of a multi-document transaction.
currentOp.transaction.
expiryTime
¶The date and time (with time zone) when the transaction will time out and abort.
The currentOp.transaction.expiryTime
equals the currentOp.transaction.startWallClockTime
+ the transactionLifetimeLimitSeconds
.
For more information, seee Runtime Limit for transactions.
Only present if the operation is part of a multi-document transaction.
New in version 4.0.2.
currentOp.
twoPhaseCommitCoordinator
¶Information on either:
Commit coordination is handled by a shard, and currentOp
(run either on a mongos
or a shard member) returns a shard’s coordination information only for those transactions currently being coordinated by that shard.
To filter for just the commit coordination metrics:
currentOp.type
is op
and currentOp.desc
is "TransactionCoordinator"
) spawned by the transaction coordinator.New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
lsid
¶The session identifier for the multi-shard transaction.
The combination of the lsid
and txnNumber
identifies the transaction.
Available for both the commit coordination metrics and for specific coordination operation.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
txnNumber
¶The transaction number for the multi-shard transaction.
The combination of the txnNumber
and lsid
identifies the transaction.
Available for both the commit coordination metrics and for specific coordination operation.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
action
¶The specific commit coordination operation spawned by the transaction coordinator:
"sendingPrepare"
"sendingCommit"
"sendingAbort"
"writingParticipantList"
"writingDecision"
"deletingCoordinatorDoc"
Only available for specific coordination operation.
currentOp.twoPhaseCommitCoordinator.
startTime
¶The start date and time of the action
.
Only available for specific coordination operation.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
numParticipants
¶Number of shards participating in this commit.
Only available for the commit coordination metrics.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
state
¶The current step/state of the commit coordination process.
Step/stage | |
---|---|
inactive |
Not actively part of a commit. |
writingParticipantList |
Writing a local record of the list of shards that are part of this multi-shard transaction. |
waitingForVotes |
Waiting for the participants to respond with vote to commit or abort. |
writingDecision |
Writing a local record of the coordinator’s decision to commit or abort based on votes. |
waitingForDecisionAck |
Waiting for participants to acknowledge the coordinator’s decision to commit or abort. |
deletingCoordinatorDoc |
Deleting the local record of commit decision. |
Only available for the commit coordination metrics.
See also currentOp.twoPhaseCommitCoordinator.stepDurations
.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
commitStartTime
¶The date and time when the commit started.
Only available for the commit coordination metrics.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
hasRecoveredFromFailover
¶A boolean that indicates whether the commit coordination was restarted due to failover on the shard that is coordinating the commit.
If hasRecoveredFromFailover
is true, then the times specified in currentOp.twoPhaseCommitCoordinator.stepDurations
may not be accurate for all steps.
Only available for the commit coordination metrics.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
stepDurations
¶A document that contains the duration, in microseconds, of the commit coordination steps/state
completed or in progress:
If currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailover
is true, then the times specified in stepDurations
may not be accurate for all steps.
For a coordinator in an inactive
state, the document is empty:
Only available for the commit coordination metrics.
See currentOp.twoPhaseCommitCoordinator.state
.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
decision
¶A document that contains the commit/abort decision, for example:
Only available for the commit coordination metrics.
New in version 4.2.1.
currentOp.twoPhaseCommitCoordinator.
deadline
¶The date and time by which the commit must finish.
Only available for the commit coordination metrics.
New in version 4.2.1.
currentOp.
opid
¶The identifier for the operation. You can pass this value to db.killOp()
in the mongo
shell to terminate the operation.
Warning
Terminate running operations with extreme caution. Only use db.killOp()
to terminate operations initiated by clients and do not terminate internal database operations.
currentOp.
active
¶A boolean value specifying whether the operation has started. Value is true
if the operation has started or false
if the operation is idle, such as an idle connection or an internal thread that is currently idle. An operation can be active even if the operation has yielded to another operation. For some inactive background threads, such as an inactive signalProcessingThread
, MongoDB suppresses various empty fields.
currentOp.
secs_running
¶The duration of the operation in seconds. MongoDB calculates this value by subtracting the current time from the start time of the operation.
Only appears if the operation is running; i.e. if active
is true
.
currentOp.
microsecs_running
¶The duration of the operation in microseconds. MongoDB calculates this value by subtracting the current time from the start time of the operation.
Only appears if the operation is running; i.e. if active
is true
.
currentOp.
op
¶A string that identifies the specific operation type. Only present if currentOp.type
is op
.
The possible values are:
"none"
"update"
"insert"
"query"
"command"
"getmore"
"remove"
"killcursors"
"query"
operations include read operations.
"command"
operations include most commands such as the createIndexes
and findandmodify
.
currentOp.
ns
¶The namespace the operation targets. A namespace consists of the database name and the collection name concatenated with a dot (.
); that is, "<database>.<collection>"
.
currentOp.
command
¶Changed in version 3.6.
A document containing the full command object associated with this operation.
For example, the following output contains the command object for a find
operation on a collection named items
in a database named test
:
The following example output contains the command object for a getMore
operation generated by a command with cursor id 19234103609
on a collection named items
in a database named test
:
If the command document exceeds 1 kilobyte, the document has the following form:
The $truncated
field contains a string summary of the document excluding the document’s comment
field if present. If the summary still exceeds 1 kilobyte then it is further truncated, denoted by an ellipsis (…) at the end of the string.
The comment
field is present if a comment was passed to the operation. Starting in MongoDB 4.4, a comment may be attached to any database command.
currentOp.
planSummary
¶Specifies whether the cursor uses a collection scan (COLLSCAN
) or an index scan (IXSCAN { ... }
).
The IXSCAN
also includes the specification document of the index used.
currentOp.
prepareReadConflicts
¶The number of times the current operation had to wait for a prepared transaction with a write to commit or abort.
While waiting, the current operation continues to hold any necessary locks and storage engine resources.
New in version 4.2.版本4.2中的新功能。
currentOp.
writeConflicts
¶The number of times the current operation conflicted with another write operation on the same document.
New in version 4.2.版本4.2中的新功能。
currentOp.
cursor
¶New in version 4.2.版本4.2中的新功能。
A document that contains the cursor information for getmore
operations; i.e. where op
is getmore
.
If reporting on a getmore
operation before the getmore
has accessed its cursor information, the cursor
field is not available.
currentOp.cursor.
cursorId
¶New in version 4.2.版本4.2中的新功能。
The id of the cursor.
currentOp.cursor.
createdDate
¶New in version 4.2.版本4.2中的新功能。
The date and time when the cursor was created.
currentOp.cursor.
lastAccessDate
¶New in version 4.2.版本4.2中的新功能。
The date and time when the cursor was last used.
currentOp.cursor.
nDocsReturned
¶New in version 4.2.版本4.2中的新功能。
The cumulative number of documents returned by the cursor.
currentOp.cursor.
nBatchesReturned
¶New in version 4.2.版本4.2中的新功能。
The curmulative number of batches returned by the cursor.
currentOp.cursor.
noCursorTimeout
¶New in version 4.2.版本4.2中的新功能。
The flag that indicates that the cursor will not timeout when idle;
i.e. if the cursor has the noTimeout
option set.
See also参阅
currentOp.cursor.
tailable
¶New in version 4.2.版本4.2中的新功能。
The flag that indicates if the cursor is a tailable cursor for a capped collection. Tailable cursors remain open after the client exhausts the results in the initial cursor.
See also参阅
currentOp.cursor.
awaitData
¶New in version 4.2.版本4.2中的新功能。
The flag that indicates whether the tailable cursor should temporarily block a getMore
command on the cursor while waiting for new data rather than returning no data.
For non-tailable cursors, the value is always false.
See also参阅
currentOp.cursor.
originatingCommand
¶New in version 4.2.版本4.2中的新功能。
The originatingCommand
field contains the full command object (e.g. find
or aggregate
) which originally created the cursor.
Note
Starting in version 4.2, MongoDB now returns originatingCommand
field as a nested field in the new cursor
field. In previous versions, the originatingCommand
was a top-level field for the associated "getmore"
document.
currentOp.cursor.
planSummary
¶New in version 4.2.版本4.2中的新功能。
Specifies whether the cursor uses a collection scan (COLLSCAN
) or an index scan (IXSCAN { ... }
).
The IXSCAN
also includes the specification document of the index used.
currentOp.cursor.
operationUsingCursorId
¶New in version 4.2.版本4.2中的新功能。
The opid
of the operation using the cursor.
Only present if the cursor is not idle.
currentOp.
client
¶The IP address (or hostname) and the ephemeral port of the client connection where the operation originates. If your inprog
array has operations from many different clients, use this string to relate operations to clients.
currentOp.
appName
¶New in version 3.4.版本3.4中的新功能。
The identifier of the client application which ran the operation. Use the appName
connection string option to set a custom value for the appName
field.
currentOp.
waitingForLatch
¶The waitingForLatch
document is only available if the operation is waiting to acquire an internal locking primitive (a.k.a. a latch) or for an internal condition to be met.
For example,
Output Field | |
---|---|
timestamp | The date and time at which the operation started to wait. |
captureName | The internal name of the section where the operation is currently blocked. |
New in version 4.2.2.
currentOp.
locks
¶The locks
document reports the type and mode of locks the operation currently holds. The possible lock types are as follows:
Lock Type | |
---|---|
ParallelBatchWriterMode |
Represents a lock for parallel batch writer mode. In earlier versions, PBWM information was reported as part of the
|
ReplicationStateTransition |
Represents lock taken for replica set member state transitions.
|
Global |
Represents global lock. |
Database |
Represents database lock. |
Collection |
Represents collection lock. |
Mutex |
Represents mutex. |
Metadata |
Represents metadata lock. |
oplog |
Represents lock on the oplog. |
The possible modes are as follows:
Lock Mode | |
---|---|
R |
Represents Shared (S) lock. |
W |
Represents Exclusive (X) lock. |
r |
Represents Intent Shared (IS) lock. |
w |
Represents Intent Exclusive (IX) lock. |
currentOp.
waitingForLock
¶Returns a boolean value. waitingForLock
is true
if the operation is waiting for a lock and false
if the operation has the required lock.
currentOp.
msg
¶The msg
provides a message that describes the status and progress of the operation. In the case of indexing or mapReduce operations, the field reports the completion percentage.
currentOp.
progress
¶Reports on the progress of mapReduce or indexing operations. The progress
fields corresponds to the completion percentage in the msg
field. The progress
specifies the following information:
currentOp.progress.
done
¶Reports the number completed.
currentOp.progress.
total
¶Reports the total number.
currentOp.
killPending
¶Returns true
if the operation is currently flagged for termination. When the operation encounters its next safe termination point, the operation will terminate.
currentOp.
numYields
¶numYields
is a counter that reports the number of times the operation has yielded to allow other operations to complete.
Typically, operations yield when they need access to data that MongoDB has not yet fully read into memory. This allows other operations that have data in memory to complete quickly while MongoDB reads in data for the yielding operation.
currentOp.
dataThroughputLastSecond
¶Amount of data (in MiB) processed by the validate
operation in the last second. Only available for a validate
operation that is currently scanning documents. For example:例如:
New in version 4.4.版本4.4中的新功能。
currentOp.
dataThroughputAverage
¶The average amount of data (in MiB) processed by the validate
operation. Only available for a validate
operation that is currently scanning documents. For example:例如:
New in version 4.4.版本4.4中的新功能。
currentOp.
fsyncLock
¶Specifies if database is currently locked for fsync write/snapshot
.
Only appears if locked; i.e. if fsyncLock
is true
.
currentOp.
info
¶Information regarding how to unlock database from db.fsyncLock()
. Only appears if fsyncLock
is true
.
currentOp.
lockStats
¶For each lock type and mode (see currentOp.locks
for descriptions of lock types and modes), returns the following information:
currentOp.lockStats.
acquireCount
¶Number of times the operation acquired the lock in the specified mode.
currentOp.lockStats.
acquireWaitCount
¶Number of times the operation had to wait for the acquireCount
lock acquisitions because the locks were held in a conflicting mode. acquireWaitCount
is less than or equal to acquireCount
.
currentOp.lockStats.
timeAcquiringMicros
¶Cumulative time in microseconds that the operation had to wait to acquire the locks.
timeAcquiringMicros
divided by acquireWaitCount
gives an approximate average wait time for the particular lock mode.
currentOp.lockStats.
deadlockCount
¶Number of times the operation encountered deadlocks while waiting for lock acquisitions.
currentOp.
waitingForFlowControl
¶A boolean that indicates if the operation is in the process of waiting for flow control.
New in version 4.2.版本4.2中的新功能。
currentOp.
flowControlStats
¶The flow control statistics for this operation.
New in version 4.2.版本4.2中的新功能。
currentOp.flowControlStats.
acquireCount
¶The number of times this operation acquired a ticket.
New in version 4.2.版本4.2中的新功能。
currentOp.flowControlStats.
acquireWaitCount
¶The number of times this operation waited to aqcuire a ticket.
New in version 4.2.版本4.2中的新功能。
currentOp.flowControlStats.
timeAcquiringMicros
¶The total time this operation has waited to acquire a ticket.
New in version 4.2.版本4.2中的新功能。