Zu verstehen, wie die unterschiedlichen internen Cache und die Festplattengeschwindigkeit zusammenhängen, und wie diese Zusammenhänge die Geschwindigkeit der Datenbank und einer Applikation beeinflussen, ist schon eine Herausforderung. In diesem Fall wurde das Yahoo! Cloud Serving Benchmark (YCSB) Tool verwendet um, mit unterschiedlichen Working Sets (Anzahl der Dokumente) und unterschiedlichen Platten, diese Zusammenhänge zu verdeutlichen.
Einigen zentrale Thesen
- Kenntnis von der grundsätzlichen Performance der Festplatte ist wichtig um die Performance der Datenbank besser zu verstehen.
- Hohe "Disk await" und "Disk utilization" Werte deuten auf ein Bottleneck bei der Festplatte hin.
- Der IO der WiredTiger Engine ist zufällig.
- Eine Abfrage auf einen einzelnen Replica Set Node ist single threaded und sequenziell.
- Die Festplattengeschwindigkeit und die Größe des Working Sets hängen direkt zusammen.
Die wichtigsten Werte, für die Gesamtperformace des Systems, sind einmal das Verhältnis des Working Sets zum verwendeten Arbeitsspeicher und die Festplattengeschwindigkeit. Letzteres stellt ein physikalisches Limit für die Zugriffsgeschwindigkeit dar. Die Tests zeigen daß, solange das Working Set in den Arbeitsspeicher paßt, eine optimale Performance erreicht werden kann. Jede Datenbank, die dieses Limit überschreitet wird in den Latenzzeiten und dem Datendurchsatz negativ beeinflußt.
Detaillierte Informationen und harte Zahlen zu diesen Performancetests finden sich in diesem Beitrag
https://www.mongodb.com/blog/post/through-the-looking-glass-analyzing-the-interplay-between-memory-disk-and-read-performance
Wem das nicht genug ist, der kann sich ja mal das Qualiero Classroom Training zum Thema MongoDB Sharded Cluster Administration ansehen
https://www.qualiero.com/lerninhalte/classroom-trainings/mongodb-fuer-sharded-cluster-administrator-kurs.html