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






Sources:




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.

Comments