MongoDB Server specifications

I needed to build a dedicated server to host MongoDB (NoSQL) database for a PoC. In this stage, I did not need to worry about replication. Usually, when I need to build a server for development, I just take one of the unused machines around and convert it to something I can work with (in many cases on top of VMWare). This case was different as I needed to build the server from scratch. What should be the HW specs for such a server?

I couldn’t find any official document describing such a BoM (minimum requirements / system load and the resources needed). One of the searches I made was for a ‘NoSQL database resource calculator’ (similar to the one you have for cloud computing resources like Azure). One that you put in the estimated load (like the number/size of documents/collections/reads/writes) and you get HW recommendations. No luck. I guess it would have been nice to have such a calculator on MongoDB’s site. Not sure how feasible it is though…

After several more searches I found a good YouTube video and the ‘right’ page on MongoDB’s site (see sources for both).

The following is a list of general recommendation with regards to hardware specs for a MongoDB server:

  • CPU:

    • Few fast cores versus many slower cores. A few faster cores will be better in the case of MongoDB.

  • RAM:

    • Ensure Indexes Fit in RAM

  • Architecture:

    • 64 bit (a given) as Mongo is using memory map files

  • Disable Non-Uniform Memory Access (NUMA)

    • Memory affinity to cores

  • Storage

    • The OS should run on SSD drive

    • Leave 20 % unpartitioned (wear endurance)

    • The rest could be spinning disks


For Production, the following information might be important: Production Notes - MongoDB .

One interesting discussion is whether to use many low cost servers versus running fewer more powerful servers.