Dies hängt auch von der Art der Abfragen ab, die Sie auslösen. Bitte überprüfen Sie, ob die unten genannten Punkte vorhanden sind -
- Gibt es viele Aggregationsabfragen? Welche Art von Sammlungsstruktur haben Sie, dh
- Gibt es viele verschachtelte Arrays?
- Ist es eine einzelne Instanz oder ein Replikatsatz? Versuchen Sie, einen Replikatsatz mit Lese- und Schreibzugriff auf einen anderen Knoten zu legen.
- Geben die Abfragen Daten aus mehreren Sammlungen zurück?
- Überprüfen Sie, ob Ihre Instanz bei wie viel % der Vorgänge Seitenfehler verursacht?
- Überprüfen Sie Ihre Protokolle auf Vorgänge mit hohem nscanned oder scanAndOrder während Zeiten hoher Sperren/Warteschlangen und indexieren Sie entsprechend.
- Überprüfen Sie Ihre Abfragen auf CPU-intensive Operatoren wie $all, $push/$pop/$addToSet sowie auf Aktualisierungen großer Dokumente und insbesondere auf Aktualisierungen von Dokumenten mit großen Arrays (oder großen Subdokument-Arrays).
- Wenn Ihre Datenbank schreiblastig ist, denken Sie daran, dass nur eine CPU pro Datenbank gleichzeitig schreiben kann (aufgrund dieses Threads, der die Schreibsperre hält). Erwägen Sie, einen Teil dieser Daten in eine eigene Datenbank zu verschieben.
Dies sind nur wenige Dinge, die die Leistung im Laufe der Zeit verringern. Ich habe hier die häufigsten Anwendungsfälle behandelt, aber bitte überprüfen Sie diesen Beitrag für weitere Einblicke.