Wenn wir kritische Datenbankdienste in der Produktion ausführen, müssen wir die Datenbank kennen und überwachen. Sie müssen die wichtigsten Metriken in der von Ihnen verwendeten Datenbank verstehen. Wenn Sie beispielsweise MongoDB mit einer WiredTiger-Speicher-Engine ausführen, müssen Sie Verbindungen, Authentifizierung, Vorgänge, Replikationsverzögerung, Seitenfehler, Sperren usw. kennen.
In diesem Blog erläutern wir einige wichtige Metriken, die zur Überwachung von Percona Server für MongoDB verwendet werden.
Datenbankverbindungen
Datenbankverbindungen sind eine der wichtigsten Kennzahlen in jeder Datenbank. Es überwacht Ihre aktuellen Verbindungen/Threads von Anwendungen zur Datenbank. Sie können die aktuellen Verbindungen mit dem folgenden Befehl überprüfen:
> db.serverStatus().connections
Er gibt Aufschluss darüber, wie oft Ihre Anwendungen auf die Datenbank zugreifen. Ein plötzlicher Anstieg der Anzahl der Verbindungen kann Probleme mit Ihren Datenbankservern verursachen. Wird es erwartet oder nicht?.
ClusterControl liefert Informationen zu den Verbindungen wie unten gezeigt:
Befehlsoperationen
Die Metriken für Befehlsvorgänge überwachen Ihre aktuellen Vorgänge, entweder Einfügen, Aktualisieren, Löschen oder Auswählen. Sie können aktuelle Befehlsoperationen überwachen, indem Sie den folgenden Befehl ausführen:
>db.serverStatus().opcounters
Aus den Befehlsoperationen können Sie Ihre Anwendungsarbeitslast wirklich sehen, ob es sich um schweres Schreiben oder Lesen handelt. Von diesem Standpunkt aus können Sie einige Entscheidungen treffen, z. B. sollten Sie bei starkem Leseverkehr die sekundären Knoten skalieren, um die Leseabfragen zu verteilen.
Das Überwachen von Befehlsoperationen in ClusterControl ist unkompliziert, Sie müssen nur die Agentenbasierte Überwachung aktivieren, um die OpsCounter-Metriken im MongoDB Server-Dashboard anzuzeigen, wie unten gezeigt:
ReplicaSet-Verzögerungen
Wenn Sie die ReplicaSet- oder ShardCluster-Architektur ausführen, ist eine wichtige Kennzahl die Replikationsverzögerung. Eine Replikationsverzögerung tritt auf, wenn sekundäre Knoten die Daten, die auf den primären Knoten geschrieben werden, nicht einholen können. Die Gründe dafür können von Netzwerklatenz, Festplattendurchsatz, langsamen Abfragen usw. abweichen.
Sie können die aktuellen Informationen zur Replikationsverzögerung überprüfen, indem Sie den folgenden Befehl auf dem primären Knoten ausführen:
> rs.printSlaveReplicationInfo()
Die Messwerte der Verzögerungsinformationen werden in Sekunden angegeben, sodass es bei starken gleichzeitigen Verbindungen zu einer Verzögerung von einigen Sekunden auf sekundären Knoten kommen kann, da die Replikation in mongodb asynchron ist.
In ClusterControl finden Sie die Metrik Max Replication Lag im MongoDB Replicaset Überwachungs-Dashboard.
Seitenfehler
Seitenfehler treten meistens in Anwendungen mit hoher gleichzeitiger und hoher Auslastung auf. Seitenfehler treten auf, wenn der Mongodb-Prozess die Daten abrufen möchte, diese jedoch nicht im Speicher verfügbar sind, und der Mongodb-Server die Daten dann von der Festplatte liest.
Um den aktuellen Status von Seitenfehlern zu überwachen, können Sie den folgenden Befehl verwenden:
>db.serverStatus().extra_info.page_faults
Ergibt die Anzahl der Seitenfehler. Der Wert kann bei hoher Auslastung ansteigen und die Leistung des Servers kann beeinträchtigt werden. Vielleicht möchten Sie auch das Protokoll für langsame Abfragen überprüfen.
Sperren
Sperren ist auch eine wichtige Metrik in MongoDB, es passiert normalerweise in Hochlastanwendungen mit mehreren Transaktionen auf demselben Datensatz. Das Sperren kann ernsthafte Leistungsprobleme verursachen.
Sie können die aktuellen Sperrvorgänge in der Datenbank mit dem folgenden Befehl überprüfen:
>db.currentOp()
Wenn wir den Befehl db.currentOp() ausführen, gibt es einige Informationen zum Sperren. ClusterControl überwacht Global Lock in seinem MongoDB-Dashboard wie unten gezeigt:
Fazit
Dies sind einige der wichtigen Kennzahlen, die in Percona Server for MongoDB überwacht werden müssen. Sie bieten eine Echtzeitansicht dessen, was auf dem Server vor sich geht, und können Anomalien aufdecken, auf die Sie reagieren können. ClusterControl bietet einige Dashboards, die Ihnen einen Überblick über Ihre MongoDB-Datenbanken geben.