Chapter 17. Seeing What Your Application Is Doing
Once you have an application up and running, how do you know what it’s doing? This chapter covers how to figure out what kind of queries MongoDB is running, how much data is being written, and how to investigate what MongoDB is actually doing. You’ll learn:
How to find slow operations and kill them
Getting and interpreting statistics about your collections and databases
Using command-line tools to give you a picture of what MongoDB is doing
Seeing the Current Operations
An easy way to find slow operations is to see what is running. Anything slow is more likely to show up and have been running for longer. It’s not guaranteed, but it’s a good first step to see what might be slowing down an application.
To see the operations that are running, use the db.currentOp()
function:
>
db
.
currentOp
()
{
"inprog"
:
[
{
"opid"
:
34820
,
"active"
:
true
,
"secs_running"
:
0
,
"op"
:
"query"
,
"ns"
:
"test.users"
,
"query"
:
{
"count"
:
"users"
,
"query"
:
{
"username"
:
"user12345"
},
"fields"
:
{
}
},
"client"
:
"127.0.0.1:39931"
,
"desc"
:
"conn3"
,
"threadId"
:
"0x7f12d61c7700"
,
"connectionId"
:
3
,
"locks"
:
{
"^"
:
"r"
,
"^test"
:
"R"
},
"waitingForLock"
:
false
,
"numYields"
:
0
,
"lockStats"
:
{
"timeLockedMicros"
:
{
},
"timeAcquiringMicros"
:
{
"r"
:
NumberLong
(
9
),
"w"
:
NumberLong
(
0
)
}
}
},
...
]
}
This displays a list of operations that the database is performing. Here are some of the more important fields in the output:
"opid"
This is the operation’s unique ...
Get MongoDB: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.