|By Hovhannes Avoyan||
|February 3, 2012 05:56 AM EST||
Connections to a database are good because that means that people are connecting to your database and using your data. Unfortunately, too many open connections on any of your Mongo databases will take the entire instance down. Why does this happen? Well for starters more connections typically means more queries, so it could just be a load issue, which you would want to know about. On the other hand, a ton of open connections could mean that your Mongo clients are not disconnecting after they are finished asking for data.
Open connections consume resources. Too many open connections can take down your entire instance even if they are not running any queries. You should monitor the number of connections with Monitis to make sure that everything is running smoothly. Load testing should give you an idea of the number of connections to set an alert for.
More Data than RAM
Once, your data set and indexes gets bigger than the amount of RAM available on your instance, then Mongo will start paging to disk. When this happens performance will start to degrade potentially rapidly as the data set grows. This might be OK, then again it might be the worst thing ever.
Keeping an eye on the “virtual memory” is the best way to gauge the performance of your Mongo instances. With, you can monitor this important statistic easily, and you can set up an alert to go off whenever you cross that dreaded RAM threshold whether it’s 4GB or 32GB. Monitis
Timeouts: A Database’s Worst Enemy
Your Mongo queries should not timeout, period. With a custom Monitis Monitor reading the HTTP Console you can find out if your database is throwing timeouts. If it is, then you should investigate. It might just be a bad query or two that needs to be better optimized. In which case you can scold the developers for poor database practices. However, cursor timeouts might also indicate that you are overloading your instance, and it might be time to either scale up or out.
At this point, you should have a good idea about how and what to monitor on your Mongo instances, and how to use a great service like Monitis to help.