I was reading that Sitecore recommends SSD disks for MongoDB Servers, and I am wondering if
- What are the recommended performance values?
- Will I have any performance lost if not use SSD?
- Best practices relation with IOPS
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:
mongod
(connections, in-memory sorts, aggregations, ...).
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: