Asya is back, and so is Sherlock Holmes and his techniques to gather and analyze data from your poorly performing MongoDB clusters. In this advanced talk we take a deep look at all the diagnostic data that lives inside MongoDB - how to interrogate and interpret it to help you solve those frustrating performance bottlenecks that we all face occasionally.
6. “
I thought of my old teacher Joe Bell, ... of his eerie
trick of spotting details. If he were a detective he
would surely reduce this ... business to something
nearer an exact science.
—Arthur Conan Doyle
7. The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red
x still appears, you may have to delete the image and then insert it again.
8. The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red
x still appears, you may have to delete the image and then insert it again.
22. #MDBW16
> show dbs
> show collections
> db.getCollectionNames().forEach(function(c) {
printjson(db.getCollection(c).getIndexes());
});
Available Tools: Say "AH"
42. "It is of the highest importance ... to be able to recognize,
out of a number of facts, which are incidental and which vital. "
Sherlock Holmes, The Reigate Puzzle
48. #MDBW16
mplotqueries
$ mplotqueries --help
usage: mplotqueries [OPTIONS] [logfile [logfile ...]]
A script to plot various information from logfiles. ...
optional arguments:
--type {nscanned/n,rsstate,connchurn,durline,histogram,range,scatter,event}
type of plot (default=scatter with --yaxis duration)
49. #MDBW16
mplotqueries
$ mplotqueries --help
usage: mplotqueries [OPTIONS] [logfile [logfile ...]]
A script to plot various information from logfiles. ...
optional arguments:
--type {nscanned/n,rsstate,connchurn,durline,histogram,range,scatter,event}
type of plot (default=scatter with --yaxis duration)
--group GROUP specify value to group on.
All basic plot types can group on
'namespace', 'operation', 'thread', 'pattern' ...
50.
51. "... what is out of the common is usually a guide
rather than a hindrance."
— Sherlock Holmes, A Study in Scarlet
105. #MDBW16
Click to add title: keep it to 56 characters w/spaces
This is a typical content slide with full width body.
• First level bullet list
• Second level bullet list
• Third level bullet list
106. #MDBW16
Two content
Click to add text.
• First level bullet list
• Second level bullet list
• Third level bullet list
Click to add text.
• First level bullet list
• Second level bullet list
• Third level bullet list
111. #MDBW16
Column Header 1 Column Header 2 Column Header 3 Column Header 4 Column Header 5
Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet
Table
113. #MDBW16
Coding Example – Light Background
// Retrieve
var MongoClient = require('mongodb').MongoClient;
// Connect to the db
MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
if(err) { return console.dir(err); }
db.collection('test', function(err, collection) {});
db.collection('test', {w:1}, function(err, collection) {});
db.createCollection('test', function(err, collection) {});
db.createCollection('test', {w:1}, function(err, collection) {});
});
114. #MDBW16
Coding Example – Dark Background
// Retrieve
var MongoClient = require('mongodb').MongoClient;
// Connect to the db
MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
if(err) { return console.dir(err); }
db.collection('test', function(err, collection) {});
db.collection('test', {w:1}, function(err, collection) {});
db.createCollection('test', function(err, collection) {});
db.createCollection('test', {w:1}, function(err, collection) {});
});
115.
116.
117.
118. #MDBW16
List slide – can also be used for agenda
Lorem ipsum dolor sit amet,
onsectetur adipiscing elit. Praesent
sodales odio sit amet odio tristique
sit elit.
Lorem Ipsum
01 Lorem ipsum dolor sit amet,
onsectetur adipiscing elit. Praesent
sodales odio sit amet odio tristique
sit elit.
Lorem Ipsum
03Lorem ipsum dolor sit amet,
onsectetur adipiscing elit. Praesent
sodales odio sit amet odio tristique
sit elit.
Lorem Ipsum
02
Lorem ipsum dolor sit amet,
onsectetur adipiscing elit. Praesent
sodales odio sit amet odio tristique
sit elit.
Lorem Ipsum
05 Lorem ipsum dolor sit amet,
onsectetur adipiscing elit. Praesent
sodales odio sit amet odio tristique
sit elit.
Lorem Ipsum
06Lorem ipsum dolor sit amet,
onsectetur adipiscing elit. Praesent
sodales odio sit amet odio tristique
sit elit.
Lorem Ipsum
05
119. #MDBW16
Columns and icons with copy (option 1)
Lorem ipsum dolor sit
amet, onsectetur
adipiscing elit.
Praesent sodales odio
sit amet odio tristique.
Linked
Lorem ipsum dolor sit
amet, onsectetur
adipiscing elit.
Praesent sodales odio
sit amet odio tristique.
Planning
Lorem ipsum dolor sit
amet, onsectetur
adipiscing elit.
Praesent sodales odio
sit amet odio tristique.
Writing
Lorem ipsum dolor sit
amet, onsectetur
adipiscing elit.
Praesent sodales odio
sit amet odio tristique.
Research
120. #MDBW16
Columns and icons with copy (option 2)
Lorem ipsum dolor sit
amet, onsectetur
adipiscing elit.
Praesent sodales odio
sit amet odio tristique .
Linked
Lorem ipsum dolor sit
amet, onsectetur
adipiscing elit.
Praesent sodales odio
sit amet odio tristique .
Planning
Lorem ipsum dolor sit
amet, onsectetur
adipiscing elit.
Praesent sodales odio
sit amet odio tristique .
Writing
Lorem ipsum dolor sit
amet, onsectetur
adipiscing elit.
Praesent sodales odio
sit amet odio tristique .
Research
121. #MDBW16
Timeline or progress
2013
Lorem ipsum dolor sit amet,
onsectetur adipiscing elit.
Praesent sodales odio sit
amet odio tristique sit elit.
Lorem ipsum dolor sit amet,
onsectetur adipiscing elit.
Praesent sodales odio sit
amet odio tristique sit elit.
2014
2015
Lorem ipsum dolor sit amet,
onsectetur adipiscing elit.
Praesent sodales odio sit
amet odio tristique sit elit.
Lorem ipsum dolor sit amet,
onsectetur adipiscing elit.
Praesent sodales odio sit
amet odio tristique sit elit.
2016
122. “
Quote sample. Lorem ipsum dolor sit amet,
onsectetur adipiscing elit amet sodales. Praesent
sodales odio sit amet odio tristique. Lorem ipsum
dolor sit amet, onsectetur adipiscing elit. Praesent
sodales odio sit amet odio tristique. Lorem ipsum
dolor sit amet, onsectetur adipiscing elit.”