How to monitor: 
MongoDB 
David Mytton 
Hangout on Air - Sept 2014 
https://blog.serverdensity.com/monitor-mongodb/
David Mytton
Server Density Architecture
Server Density Architecture 
● ~100 servers - Ubuntu 12.04
Server Density Architecture 
● ~100 servers - Ubuntu 12.04 
● 50:50 virtual/dedicated
Server Density Architecture 
● ~100 servers - Ubuntu 12.04 
● 50:50 virtual/dedicated 
● 200TB/m processed data
Server Density Architecture 
● ~100 servers - Ubuntu 12.04 
● 50:50 virtual/dedicated 
● 200TB/m processed data 
● Nginx, Python, MongoDB
Server Density Architecture 
● ~100 servers - Ubuntu 12.04 
● 50:50 virtual/dedicated 
● 200TB/m processed data 
● Nginx, Python, MongoDB 
● Softlayer > 1TB RAM, 5TB SSDs
Key metrics 
● Oplog replication lag 
● Replica state 
● Lock % 
● Disk i/o % utilization
Oplog replication lag 
● Replica sets: master/slave
Oplog replication lag 
● Replica sets: master/slave 
● Async i.e. eventually consistent
Oplog replication lag 
● Replica sets: master/slave 
● Async i.e. eventually consistent 
● Write concern
Oplog replication lag
Oplog replication lag 
https://blog.serverdensity.com/mongodb-benchmarks/
Oplog replication lag 
● Replica sets: master/slave 
● Async i.e. eventually consistent 
● Write concern 
● Falling behind
Reasons for repl falling behind 
● Network problems
Reasons for repl falling behind 
● Network problems 
● Hardware problems
Reasons for repl falling behind 
● Network problems 
● Hardware problems 
● Shard chunk migrations
Reasons for repl falling behind 
● Network problems 
● Hardware problems 
● Shard chunk migrations 
● MongoDB bugs
Replica state 
● Primary / secondary
Replica state 
● Primary / secondary 
● Alert on state change
Lock % 
● Database locking (2.6)
Lock % 
● Database locking (2.6) 
● Sometimes a problem:
Lock % 
● Database locking (2.6) 
● Sometimes a problem: 
● Nearing 100%
Lock % 
● Database locking (2.6) 
● Sometimes a problem: 
● Nearing 100% 
● Constantly high
Lock % 
● Database locking (2.6) 
● Sometimes a problem: 
● Nearing 100% 
● Constantly high 
● Slows replication
Disk i/o % utilization 
● Hardware limits
Disk i/o % utilization 
● Hardware limits 
● Nearing 100%
Disk i/o % utilization 
● Hardware limits 
● Nearing 100% 
● Constantly high
Disk i/o % utilization 
● Hardware limits 
● Nearing 100% 
● Constantly high 
● Spinning -> SSD
Disk i/o % utilization 
https://blog.serverdensity.com/mongodb-performance-ssds-vs-spindle-sas-drives/
Disk i/o % utilization 
https://blog.serverdensity.com/mongodb-benchmarks/
Disk i/o % utilization 
● Hardware limits 
● Nearing 100% 
● Constantly high 
● Spinning -> SSD 
● Slow queries, hangs, slow repl
Non-critical metrics to watch 
● Memory usage
Non-critical metrics to watch 
● Memory usage 
● Page faults
Non-critical metrics to watch 
● Memory usage 
● Page faults 
● Connections
Non-critical metrics to watch 
● Memory usage 
● Page faults 
● Connections 
● Shard chunk distribution
Non-critical metrics to watch
Monitoring tools 
● mongostat 
● mongotop 
● rs.status() 
● sh.status()
rs.status()
sh.status()
Server Density
MMS
Summary 
● Critical alerts on key metrics
Key metrics 
● Oplog replication lag 
● Replica state 
● Lock % 
● Disk i/o % utilization
Summary 
● Critical alerts on key metrics
Summary 
● Critical alerts on key metrics 
● Watch non-critical
Summary 
● Critical alerts on key metrics 
● Watch non-critical 
● Manual tools for real time
Summary 
● Critical alerts on key metrics 
● Watch non-critical 
● Manual tools for real time 
● Set up a monitoring product
Useful resources 
● http://docs.mongodb.org/manual/administration/monitoring/ 
● https://blog.serverdensity.com/monitor-mongodb 
● https://blog.serverdensity.com
どもありがとうございます 
@davidmytton 
david@serverdensity.com 
blog.serverdensity.com

How to monitor MongoDB