11

I was reading that Sitecore recommends SSD disks for MongoDB Servers, and I am wondering if

  1. What are the recommended performance values?
  2. Will I have any performance lost if not use SSD?
  3. Best practices relation with IOPS
9

If your throughput consist out of more than 100.000 writes per second, I would recommend you use an SSD. I think you should not overkill your machine. MongoDB cache will only take up to 10% of your available RAM to cache it's write actions. When you use the write concern w:majority on a replicaset your data will always be present in at least 2 (if you have a majorty of 2) of your MongoDB instaces (on disk). Of course SSD will speed of the writing process, but sitecore analytics is not that having that it really needs to have an SSD.

We have a replicaset not containing an SSD, and our systems are practically doing nothing while still having many visits. Because the aggregation of Sitecore is not realtime but there are jobs scheduled to perform such writings, your Website will never suffer under the circumstances of your replicaset (unless it is unavailable at all..) Therefor I would refer to a previously made comment of mine (Sizing MongoDB Servers for xDB)

My recommendation:

  • 3 database servers(mongoDB) set-up as a resultset
  • 4 x CPU E5 2650 v2 processors
  • 8GB RAM
  • 100GB HDD (dedicated to db storage)
| improve this answer | |
  • 1
    You need more memory for better performance. – ASura Oct 14 '16 at 15:14
  • "MongoDB cache will only take up to 10% of your available RAM to cache it's write action" => as far as I'm aware this isn't standard behaviour in any version of MongoDB server. In modern production releases of MongoDB (3.2+) the default WiredTiger internal cache size is roughly half of RAM with the remainder of memory left available for filesystem cache and other allocations as required by mongod (connections, in-memory sorts, aggregations, ...). – Stennie Mar 30 '18 at 21:39
8

Here's my understanding (from notes taken during a Mongo engagement a while back): for MongoDB, the more RAM the better. MongoDB performs everything in memory (by default) and flushes it to disk in a separate thread. An SSD drive will speed up the flushing process. Note, unless you force MongoDB to acknowledge writes only after you physically write to a disk, this is not so important – alternatively get more RAM to ensure a minimum of disk activity (besides flushing updates to the disk). Each connection to the MongoDB database takes up ~1MB of memory. Lots of connections to MongoDB will have a large overhead, so monitor this (use mongostat?).

This is from an old whitepaper I have on Mongo tuning:

  • Disk access patterns in MongoDB do not have sequential properties, and as a result, customers may experience substantial performance gains by using SSDs. Good results and strong price to performance have been observed with SATA SSD and with PCI.
  • Commodity SATA spinning drives are comparable to higher cost spinning drives due to the non-sequential access patterns of MongoDB: rather than spending more on expensive spinning drives, that money may be more effectively spent on more RAM or SSDs.
  • Another benefit of using SSDs is that they provide a more gradual degradation of performance if the working set no longer fits in memory.
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.