In this recipe, we will be looking at what a working set is, why is it important, and how to calculate it.
As you probably know, MongoDB relies heavily on caching objects and indexes in RAM. The primary reason to do so is to leverage the speed at which data can be retrieved from RAM as compared to physical disks. Theoretically, a working set is the amount of data accessed by your clients. For performance reasons, it is highly recommended that the server should have sufficient RAM to fit the entire working set while keeping sufficient room for other operations and services running on the same server.
At a high level, the working set comprises the most frequently accessed data and indexes. To get an idea of your database's size, you can run the db.stats()
command on the MongoDB shell:
db.stats()
You will get the following result:
{ "db" : "mydb", "collections" : 5, "views" : 0, "objects" : 100009, "avgObjSize" : 239.83617474427302...