Dieser Leitfaden erklärt die 10 häufigsten Fallstricke bei der Überwachung der Datenbankleistung, in die Ingenieure, Datenbankadministratoren und *Ops-Teams häufig tappen (und hilft Ihnen, diese zu vermeiden). Diese Überwachungsfehler können zu einer schlechten Datenbankleistung führen und andere Probleme, die die Zuverlässigkeit oder Datenintegrität beeinträchtigen können, durchscheinen lassen – was zu langsamen Abfragen, Ausfallzeiten und Benutzerproblemen führt und möglicherweise die Lebensfähigkeit Ihres Produkts oder Unternehmens gefährdet.
Nr.1 Verlassen Sie sich nur auf Standard- und High-Level-Metriken
Die Überwachung der CPU- und Speichernutzung reicht nicht aus, um Probleme mit der Datenbankleistung zu erkennen. Die Leistung einzelner Abfragen, die Indizierung und andere Faktoren müssen ebenfalls aufgezeichnet und nachverfolgt werden, um festzustellen, ob, wann und warum Ihre Datenbank unzureichende Leistungen erbringt.
Weitere Messgrößen, die Sie überwachen sollten, sind Index- und Cache-Leistung, Lese-/Schreib-Latenz, Verbindungs-Timeouts und Festplattenleistung.
Nr.2. Keine Aufzeichnung der grundlegenden Leistungskennzahlen
Sie werden nicht wissen, ob die Maßnahmen, die Sie zur Optimierung der Leistung Ihrer Datenbank ergreifen, funktionieren, wenn Sie keine Basislinie haben, an der Sie messen können. Das bedeutet, dass Sie regelmäßig Messungen durchführen, während Ihre Datenbank optimal arbeitet, und diese mit früheren Messungen vergleichen.
Sobald eine Basislinie für die Leistung festgelegt ist, lassen sich Anomalien und Rückschritte leichter erkennen, und Sie können sicherstellen, dass Sie in die richtige Richtung arbeiten, um alle Probleme zu lösen.
Nr.3 Überwachung zu selten oder mit zu großer Verzögerung
Ein zeitlich geplanter Überwachungsansatz, bei dem Metriken in regelmäßigen Abständen (z. B. stündlich) erfasst werden, und die Batch-Verarbeitung von Protokolldateien können für einige Szenarien eine kostengünstige Alternative zur Echtzeitüberwachung sein.
Eine zu seltene Überwachung oder die Verarbeitung von Protokolldaten mit erheblicher Verzögerung kann jedoch dazu führen, dass Probleme (insbesondere vorübergehende Leistungsprobleme) übersehen oder nicht behoben werden, bevor sie an anderer Stelle in Ihrer Infrastruktur zu Folgeerscheinungen führen können. Sie müssen Ihre Konfiguration für die Überwachung der Datenbankleistung so abstimmen, dass Probleme erkannt werden, wenn sie relevant sind, und dass wirksame Maßnahmen ergriffen werden können.
Nr.2. Überwachung auf Abfrageebene ignorieren
Ineffiziente Abfragen und schlecht optimierte Datenbankstrukturen können selbst die leistungsfähigsten Server in die Knie zwingen. Bevor Sie die Spezifikation (und die Kosten) Ihrer Datenbankserver erhöhen, sollten Sie sicherstellen, dass Sie die Leistung der Abfrageausführung überwachen, damit langsame Abfragen korrigiert und optimiert werden können.
Die Überwachung auf Abfrageebene und das Verständnis dafür, wie das von Ihnen gewählte Datenbanksystem Abfragen intern ausführt (einschließlich des Abfrageausführungsplans und der Reihenfolge, in der auf Datenbanktabellen zugegriffen wird), sind dabei von entscheidender Bedeutung.
Nr.5. Keine korrekten Schwellenwerte und Warnungen einstellen
Wenn ein gut konzipiertes, ordnungsgemäß gewartetes und gut abgestimmtes System zur Überwachung der Datenbankleistung eine Warnung sendet, die nie gelesen oder bearbeitet wird, kann sie genauso gut nicht existieren. Warnungen müssen den Verantwortlichen erreichen, und ihr Schweregrad muss erkennbar sein: Schwellenwerte für Warnungen, die zu einem Posteingang voller belangloser Benachrichtigungsergebnisse führen, bedeuten, dass wichtige Benachrichtigungen untergehen, oder dass sie aufgrund von Warnungsmüdigkeit übersehen werden.
Außerdem müssen die richtigen Personen benachrichtigt werden: Die Teammitglieder sollten für bestimmte Aspekte Ihrer Datenbankinfrastruktur zuständig sein und wissen, welche Auswirkungen es hat, wenn eine bestimmte Kennzahl aus dem Bereich fällt und wie das Problem am besten behoben werden kann. Dies wird durch eine Kultur der Proaktivität und die regelmäßige Überprüfung der Aufdeckungs- und Reaktionsverfahren ermöglicht.
Nr.6. Nur auf serverseitige Metriken konzentrieren
Eine schnelle Datenbank hinter einer langsamen Verbindung sieht für die Endbenutzer genauso aus wie eine langsame Datenbank. End-to-End-Performance-Monitoring sowie clientseitige Analysen helfen Ihnen, Performance-Probleme zu erkennen, die durch schlecht optimierten Front-End-Code oder Netzwerkengpässe verursacht werden, die für reine serverseitige Monitoring-Lösungen möglicherweise völlig unsichtbar sind.
Nr.7. Fehlende Analyse historischer Daten und mangelnder Einblick
Die Erstellung einer Baseline, die Identifizierung von Spitzenzeiten zur Vorhersage künftiger Anforderungen und die Eingrenzung vorübergehender Probleme hängen alle davon ab, dass man Zugang zu historischen Datenbankleistungsdaten hat, mit denen man vergleichen kann. Die Beurteilung der Behebungszeiten hängt auch von historischen Erkenntnissen ab, von der Möglichkeit, festzustellen, wann ein Problem aufgetreten ist und wer benachrichtigt wurde.
Historische Sicherheitsdaten sind auch für die Diagnose von Leistungsproblemen nützlich: Eine schlechte Leistung könnte durch die Ausnutzung Ihrer IT-Ressourcen verursacht werden, und eine Verlangsamung der Anwendungsleistung könnte ein Hinweis auf einen Vorfall im Bereich der Cybersicherheit sein.
Nr.8. Vernachlässigung von Indizierungs- und Schemaentwurfsfragen
Die Struktur Ihres Datenbankschemas hat großen Einfluss auf die Leistungsmetriken. Unter- und Überindizierung können sich negativ auf die Leistung auswirken, während Techniken wie Denormalisierung und Zwischenspeicherung die Leistung verbessern können, ohne zusätzliche Ressourcen zu erfordern.
Nr.9. Übersehen von Ressourcenkonflikten und Sperrproblemen
Ressourcenkonflikte und Sperren (Deadlocks, blockierende Sitzungen) treten auf, wenn mehrere Abfragen dieselben Daten ändern müssen. Operationen müssen auf den Abschluss der vorherigen warten, was die Gesamtzeit für die Ausführung einer Abfrage verlängern und manchmal zu unbestimmten Verzögerungen führen kann. Dies kann durch eine sorgfältige Schema- und Abfragegestaltung abgemildert werden.
Nr.10. Fehlkonfiguration von Tools und übermäßige Abhängigkeit von einem einzigen Tool
Die Standardkonfigurationen, mit denen Datenbanküberwachungs- und -verwaltungstools ausgeliefert werden, sind nicht für beliebig komplexe Datenbanklösungen geeignet. Sie sollten Ihre Dateninfrastruktur bewerten und das (oder die) Werkzeug(e) auswählen, das (die) die für Ihr Projekt erforderlichen Einblicke und Abhilfemaßnahmen liefern kann (können), anstatt sich auf ein einzelnes Produkt zu verlassen, das Lücken in der Transparenz hinterlässt.
Überwachungstools, Warnmeldungen und Dashboards sollten so konfiguriert werden, dass sie zielgerichtet sind und wichtige Informationen nicht im Rauschen untergehen. Log-Analysen können im Nachhinein für umfassendere Einblicke genutzt werden, während Live-Benachrichtigungen für kritische Maßnahmen reserviert werden sollten, die ergriffen werden müssen, damit sie nicht übersehen werden.
Eine ganzheitliche, mehrschichtige Überwachungsstrategie kann vor vielen Datenbankproblemen schützen
Diese Liste erhebt keinen Anspruch auf Vollständigkeit, denn welche Fallstricke bei der Leistungsüberwachung am schädlichsten sind, hängt auch davon ab, worauf es bei Ihrem Projekt ankommt: wie es funktioniert, welche Daten und Abfragen Ihre Datenbank verarbeitet und welche Ergebnisse damit erzielt werden sollen. Ein ganzheitlicher, mehrschichtiger Ansatz für die Datenbanküberwachung kann sowohl vor bekannten als auch vor speziellen Fallstricken für Ihre Daten und Ihre Infrastruktur schützen.
KI-Tools können hier durch eine stärkere Automatisierung und die Erkennung von Anomalien eine große Hilfe sein. Sie können oft Probleme erkennen, indem sie große Mengen von Protokolldaten durchsuchen, für die ein Mensch sehr viel Zeit benötigen würde. Die Koordinierung zwischen Datenbankadministratoren, DevOps-Ingenieuren und Entwicklungsteams trägt ebenfalls dazu bei, dass alle potenziellen Probleme erkannt und entschärft werden.
Die Datenbankdokumentation ist auch der Schlüssel für die kontinuierliche Wartbarkeit eines jeden Projekts. Probleme können schneller erkannt und behoben werden, wenn Ingenieure wissen, wie etwas funktioniert, anstatt den cleveren Hack eines anderen nachbauen zu müssen. Auch die Dokumentation ist keine einmalige Aufgabe: Korrekturen, Patches und laufende Anpassungen der Datenbankkonfiguration, Abfragen und des Anwendungscodes sollten gut strukturiert dokumentiert werden, damit relevante Informationen schnell gefunden werden können. Das gilt auch für Ihr Überwachungsgerät: Es muss ständig aktualisiert werden und wird mit zunehmender Reife auf seine eigenen Fehler und Probleme stoßen.
Die Leistung sollte regelmäßig und so oft wie nötig überprüft werden, um sicherzustellen, dass sie stets dem Bedarf entspricht (in der Regel wöchentlich oder monatlich, bei Bedarf aber auch häufiger). Abfragen, die aufgrund von Änderungen bei der Eingabe oder Ausgabe langsam geworden sind, können dann identifiziert und optimiert werden, wenn sich die Anwendungsfälle weiterentwickeln, und Ihre Leistungsüberwachung muss eventuell angepasst werden.
Warum die Überwachung der Datenbankleistung wichtig ist
Ein Datenbanküberwachungssystem, das nicht die richtigen Metriken misst und nicht die richtigen Personen benachrichtigt, kann zu einem geringeren ROI für Ihre IT-Infrastruktur und Softwareentwicklung führen. Eine schlechte Datenbankleistung hat auch Auswirkungen auf den Rest Ihrer IT- und Hosting-Infrastruktur und schließlich auf Ihre Endbenutzer. Erhöhte Mean Time to Repair (MTTR) führt zu Umsatzeinbußen und erhöhten Wartungskosten, da sich die Auswirkungen eines Datenproblems selbst in einfachen Anwendungsarchitekturen schnell summieren können.
Die Nutzer erwarten eine hohe Verfügbarkeit und schnell reagierende Anwendungen, und das Vertrauen kann schnell schwinden, wenn diese Erwartung nicht erfüllt wird, insbesondere bei der Bereitstellung von Unternehmensdiensten. Dies erfordert eine schnelle Skalierung auf der Grundlage von Überwachungssystemen, die sicherstellen, dass die Infrastrukturkosten nicht durch eine ineffiziente Datenbanknutzung verschwendet werden, und die die Informationen liefern, die Sie benötigen, um ein Gleichgewicht zwischen Leistung und skalierenden Infrastrukturkosten herzustellen.
Empfohlene Tools und Techniken zur Datenbanküberwachung
Welche Tools Sie zur Überwachung der Leistung und des Zustands Ihrer Datenbanken verwenden, hängt weitgehend von den individuellen Anforderungen Ihres Projekts ab, wobei Sie je nach Ihren internen Kenntnissen und Ressourcen ein Gleichgewicht zwischen Open-Source-Tools und verwalteten Diensten herstellen.
Beliebte Tools zur Überwachung der Datenbankleistung sind:
Einige bekannte verwaltete Cloud-Datenbankplattformen sind:
Diese Tools werden auch ihre eigenen Tools zur Überwachung von Leistung, Sicherheit und Zustand bereitstellen.
Open-Source-Datenbankverwaltungstools wie pgAdmin und DBADashkönnen ebenfalls verwendet werden, wenn sie Ihren Anforderungen entsprechen.
Die Beobachtbarkeit und Integration mit Ihrer bestehenden IT-Infrastrukturüberwachung ist ebenfalls von entscheidender Bedeutung, damit Leistungsprobleme entweder an der Quelle oder durch ihre Auswirkungen auf andere Dienste schnell erkannt und die verantwortlichen Stakeholder benachrichtigt werden können. NinjaOne kann die Leistung von SQL-Servern als Teil seiner einheitlichen IT-Management-Lösung überwachen, und Sie können auch Ihre eigenen benutzerdefinierten Skripte erstellen, die die für Ihr Projekt wichtigen Metriken überwachen.
FAQs
Was ist der Unterschied zwischen der Überwachung und der Profilerstellung einer Datenbank?
Die Datenbanküberwachung ist ein kontinuierlicher Prozess in Echtzeit, der die Leistung, den Zustand, die Sicherheit und die Reaktionsfähigkeit eines Datenbanksystems überprüft. Datenbank-Profiling ist die regelmäßige Überprüfung einer Datenbank, um zu verstehen, wie sie sich verhält und welche Optimierungen an der Datenbankstruktur oder an Abfragen ihre Effizienz und Leistung verbessern können.
Wie oft sollte ich meine Datenbanküberwachungsstrategie überprüfen?
Sie sollten Ihre Datenbanküberwachungsstrategie regelmäßig überprüfen. Dies sollte eine wöchentliche oder monatliche Überprüfung Ihrer Konfiguration beinhalten, um sicherzustellen, dass sie für Ihren Anwendungsfall geeignet ist und dass es nicht zu einer Konfigurationsabweichung gekommen ist. Sie sollten auch prüfen, ob Warnmeldungen gesendet (und empfangen) werden und ob Ihre Datenbanküberwachungskonfiguration gesichert ist. Die Sicherheits- und Auditprotokolle sollten ebenfalls regelmäßig überprüft werden, um sicherzustellen, dass alle wichtigen Ereignisse erfasst und die zuständige Stelle benachrichtigt wurde.
Kann ich Cloud-Datenbanken auf dieselbe Weise überwachen wie Datenbanken vor Ort?
Ja, für die Überwachung von Cloud-Datenbanken können dieselben Tools verwendet werden wie für die Überwachung von On-Premises-Datenbanken. Cloud-Plattformen können auch zusätzliche Tools zur Überwachung der Datenbankleistung für ihre verwalteten Dienste bereitstellen, und Sie können die von Cloud-Plattformen bereitgestellten Tools auch nutzen, um die Nutzung der virtuellen Maschinen zu überwachen, auf denen Ihre Datenbanksoftware gehostet wird.