Leistung

IBM Cloud® Databases for MongoDB-Bereitstellungen können sowohl manuell entsprechend der Nutzung skaliert als auch für eine automatische Skalierung konfiguriert werden, die bei bestimmten Ressourcenbedingungen einsetzt. Wenn Sie die Leistung Ihrer Einrichtung optimieren wollen, sollten Sie zunächst einige Faktoren berücksichtigen.

Bereitstellung überwachen

Databases for MongoDB-Bereitstellungen bieten eine Integration mit dem Service IBM Cloud® Monitoring, um eine Basisüberwachung der Ressourcennutzung in Ihrer Bereitstellung zu gewährleisten. Viele der verfügbaren Metriken, z. B. Plattenbelegung und IOPS, werden angezeigt, um die Konfiguration der automatischen Skalierung für die Bereitstellung zu erleichtern. Wenn Sie Nutzungstrends beobachten und die automatische Skalierung entsprechend konfigurieren, können Sie Leistungsproblemen entgegenwirken, bevor Ihre Datenbanken aufgrund nicht ausreichend verfügbarer Ressourcen instabil werden.

Plattenbelegung

Wenn Sie sich Sorgen darüber machen, wie viel Speicherplatz MongoDB für die Speicherung Ihrer Daten benötigt, können Sie eine systemeigene MongoDB Datenspeicherdiagnose durchführen, um die Größe von Datenbanken, Sammlungen und Indizes zu ermitteln. Wenn die ungefähre Größe Ihrer Datenmenge bekannt ist und keine Änderungen zu erwarten sind, können Sie Ihre Platte manuell entsprechend Ihrer Datenmenge skalieren. Wenn Ihre Datenmenge im Lauf der Zeit in vorhersehbarem Umfang zunimmt, können Sie die automatische Skalierung so konfigurieren, dass die Plattengröße erhöht wird, sobald die Plattenbelegung einen bestimmten Schwellenwert erreicht.

Platten-E/A

Die Anzahl der E/A-Operationen pro Sekunde (IOPS) in Databases for MongoDB-Bereitstellungen ist durch den Datenträgertyp begrenzt. Speicher-Volumes für Databases for MongoDB-Bereitstellungen sind Block Storage Endurance Volumes in der Stufe 10 IOPS pro GB. Wenn die E/A-Auslastung an ihre Grenzen stößt, kann dies dazu führen, dass Ihre Datenbanken eine hohe Antwortzeit aufweisen oder sogar vollständig blockiert zu sein scheinen. Dinge wie nicht optimierte Abfragen, die Erstellung von Indizes und die Erstellung neuer Indizes können IOPS-Spitzen verursachen, aber es ist auch möglich, dass die normale Arbeitslast Ihrer Anwendungen die verfügbaren IOPS für Ihre Bereitstellung übersteigt.

Sie können die Anzahl der für Ihre Bereitstellung verfügbaren IOPS erhöhen, indem Sie den Plattenspeicher vergrößern. Sie können auch die automatische Skalierung so konfigurieren, dass die Plattengröße automatisch erhöht wird, sobald die E/A-Auslastung Ihrer Bereitstellung über einen längeren Zeitraum hinweg einen bestimmten Sättigungspunkt erreicht.

Weitere Informationen finden Sie in der Dokumentation zuMongoDB.

WiredTiger-Cache und Speicher

Databases for MongoDB verwendet die WiredTiger Speicher-Engine, die sowohl den Dateisystem-Speicher-Cache als auch einen internen Speicher-Cache nutzt. Die MongoDB-Leistung ist am höchsten, wenn Ihre Daten über den internen Cache geliefert werden, etwas niedriger, wenn sich die Daten im Dateisystemcache befinden, und am niedrigsten, wenn Anfragen für Ihre Daten über die Festplatte bedient werden müssen.

Die Standardgröße des internen Cache ist 50% of (total RAM per member - 1 GB) oder 256 MB, je nachdem, welcher Wert größer ist. Die minimale Speichergröße eines Databases for MongoDB beträgt beispielsweise 4096 MB pro Datenmitglied, so dass der interne Cache 1536 MB beträgt (weil 0.5 * (4096 MB - 1024 MB) = 1536 MB.

Das Verhältnis zwischen internem Cache und Dateisystemcache kann für Ihre Bereitstellung nicht vom Benutzer konfiguriert werden, Sie können jedoch die Gesamtgröße des Speichers skalieren und den internen Cache dadurch so vergrößern, dass Ihre Datenbank leistungsfähiger wird. Wenn Sie beispielsweise den Speicher auf 5120 MB pro Mitglied skalieren, beträgt die interne Cache-Größe 2048 MB. 0.5 * (5120 MB - 1024 MB) = 2048 MB.

Eine andere Einsatzvariante der automatischen Skalierung besteht darin, den Speicher so zu konfigurieren, dass eine Skalierung erfolgt, wenn die Platten-E/A-Auslastung einen bestimmten Schwellenwert erreicht. Ein Erhöhen der Hauptspeichergröße reduziert die Menge der MongoDB-Plattenleseoperationen und -schreiboperationen und kann so durch die Unterstützung zusätzlichen Cachings die Beanspruchung bei der Platten-E/A reduzieren.

Weitere Informationen über den WiredTiger Cache finden Sie in der Dokumentation MongoDB.

Abfrageleistung

Die Dokumentation MongoDB enthält mehrere Ressourcen zur Abfrageleistung, einschließlich einer Anleitung zur Analyse der Abfrageleistung. Sobald Sie sich einen Überblick über die Leistung Ihrer Abfragen verschafft haben, finden Sie dort auch Tipps zur Optimierung Ihrer Abfragen.

Als fortgeschrittenes Thema können Sie lernen, wie MongoDB Abfragepläne verwaltet.

Weitere MongoDB-Überwachungstools

Auch einige der nativen MongoDB-Überwachungsfunktionen können für Sie von Vorteil sein. Sie können beispielsweise sowohl mongotop als auch mongostatverwenden.

mongotop 30 --username admin --password $PASSWORD --tls --tlsCAFile $CERTFILE --authenticationDatabase admin --host host1.databases.appdomain.cloud:31712, host2.databases.appdomain.cloud:31712

mongostat -n 20 1 --username admin --password $PASSWORD --tls --tlsCAFile $CERTFILE --authenticationDatabase admin --host host1.databases.appdomain.cloud:31712,host2.databases.appdomain.cloud:31712 --json

Führen Sie alle dokumentierten Befehle aus, die den Status Ihrer MongoDB-Datenbank melden.

Viele der Dienstprogramme und Befehle von MongoDB benötigen zur Ausführung die Rolle Cluster Monitor. Diese Rolle ist nicht im Standardrollensatz admin enthalten. Rolle "Clusterüberwachung" erteilen durch den admin-Benutzer in Ihrer Implementierung.

Weitere Informationen finden Sie im Blogbeitrag zu Best Practices.