4 minute gelesen

Warum die Kontrolle über Daten und eine gesunde Datenbankumgebung so wichtig sind

Featured Image

In geschäftigen Zeiten vergisst man leicht mal bestimmte Dinge, die wirklich nicht unter den Tisch fallen sollten. Eines dieser Dinge, die in unserem Geschäft als besonders wichtig betrachtet werden, sind Daten. Man darf die Bedeutung der regelmäßigen Kontrolle der Datenbank und der vitalen Gesundheit der Datenbankumgebung nicht vernachlässigen. Eine Empfehlung besteht darin, dies zu überwachen und regelmäßige „Gesundheitschecks“ durchzuführen, um sicherzustellen, dass die Überwachung auch tatsächlich funktioniert. Neue Daten werden praktisch die ganze Zeit in die Datenbanktabellen geschrieben. Das Ergebnis: Diese Tabellen werden in der Regel immer größer. Wenn Sie deren Wachstum nicht unter Kontrolle behalten, kann dies langfristig zu Leistungsproblemen führen, etwa in Form von langen Ladezeiten für Benutzer, Skripten, API-Anfragen und Robots. Auch verschiedene andere Ressourcen wie CPU, Arbeitsspeicher und Festplatten sind davon betroffen, wenn die Daten wachsen.

 

Ein Gesundheitscheck für die Datenbank 

Mit zunehmender Größe der Tabellen in den Datenbanken steigt die Bedeutung der Kontrolle von Größe und Wachstumsrate. Bei Tabellengröße und Anzahl der Zeilen ist es einfach, das Wachstum zu verfolgen, indem Sie beispielsweise DATA_LENGTH und TABLE_ROWS in INFORMATION_SCHEMA.TABLES überprüfen. Dies gibt Ihnen einen Eindruck von der aktuellen Situation und ob es Anomalien gibt. Ist es beispielsweise vernünftig, fast  100 Millionen Zeilen in einer Tabelle zu haben? Kann die Größe damit argumentiert werden, dass die Daten tatsächlich verwendet werden, oder sollte eine Bereinigung in Betracht gezogen werden? Es ist noch interessanter zu überlegen, wie vernünftig die Anzahl der Zeilen in einer Tabelle mit sehr häufig verwendeten Daten ist. Auf diese Weise erhalten Sie gute Informationen darüber, welche Auswirkungen große Tabellen auf die Leistung mit dem Slow Query Logger von MySQL haben (mehr dazu weiter unten). In Bezug auf die Wachstumsrate können Sie natürlich Diagramme erstellen, indem Sie Daten aus der oben genannten Tabelle in regelmäßigen Zeitintervallen extrahieren. Auf diese Weise erhalten Sie ein Gefühl dafür, ob die Wachstumsrate zunimmt, wenn z. B. neue Funktionen eingeführt werden.

Um die Gesundheit der Datenbanktabellen sicherzustellen, ist es auch gut zu überprüfen, ob z. B. CHECK TABLE tatsächlich für die Tabellen durchgeführt wird. Sie möchten sicherlich vermeiden, Backups von beschädigten/defekten Tabellen zu erstellen.

Wenn Sie dies zu kompliziert finden, können Sie dies gerne mit uns von Netadmin besprechen. Wir achten darauf, dass die Datenbank in Ihrem System gesund ist – sowohl für funktionale Zwecke als auch für die Benutzererfahrung!

 

Gesundheitschecks aus umwelt- und leistungsbezogener Perspektive

Abgesehen von der Datenbank selbst ist es auch wichtig, dass die Datenbank in einer Umgebung arbeitet, in der umgebende Faktoren und Ressourcen ebenfalls gesund sind und regelmäßig überwacht werden. Unterdimensionierte Ressourcen können sonst die Leistung beeinträchtigen. Einige Beispiele für Elemente, die sinnvoll zu überwachen sein könnten:

  • CPU-Auslastung/Durchschnittliche Last: Es ist interessant, die Trends für CPU/Loadavg zu beobachten, um festzustellen, ob die verfügbare CPU-Leistung für die wachsenden Daten ausreicht.
  • Platz auf der Festplatte: Die Überwachung des Festplattenplatzes ist sicherlich sehr wichtig. Wenn der Festplattenspeicher voll ist, ist es wahrscheinlich, dass viele Funktionen sowohl in Anwendungen als auch im Betriebssystem beim normalen Betrieb Probleme bekommen.
  • Festplatten-E/A: Dies hängt ein wenig davon ab, wie die Festplattenkonfiguration aussieht. Kann die Festplatte beim Lesen und Schreiben mithalten oder die Aufgabe nur noch gerade so abschließen? Es könnte auch interessant sein zu sehen, was SMART über die Festplatten zu sagen hat.
  • Speicherauslastung: Wie sieht die Speicherauslastung aus, wenn die speicherintensivsten Funktionen ausgeführt werden? Kommt der Speicher an seine Grenzen?
  • Netzwerkauslastung: Auch dies kann interessant sein. Überwachen Sie diesen Faktor, um Anomalien in der übertragenen Datenmenge pro Zeiteinheit zu entdecken (insbesondere, wenn sehr wenig Daten übertragen werden). Diese Informationen könnten beim Troubleshooting sehr nützlich sein.
  • IIS: Wie sieht die Reaktionszeit aus? Gibt es Anfragen, die unverhältnismäßig lange hängen und überprüft werden müssen? Haben diese Anfragen eine direkte Verbindung zu den damit verbundenen Problemen in der Datenbank? Vielleicht während bestimmter Tageszeiten?

 

Die Leistungsperspektive 

Große Datenbanktabellen, insbesondere solche, die häufig verwendet werden, können einen großen Einfluss auf die allgemeine Erfahrung der Systemleistung haben. Wie bereits in der vorherigen Überschrift erwähnt, ist es definitiv eine gute Idee, die Tabellen vorsorglich auf eine gesunde Größe zu beschränken. Es könnte jedoch schwierig sein zu wissen, wo die Grenze gezogen werden sollte – wie viele Zeilen/Gigabyte sind vernünftig? Wenn Sie die Tabellensperren überwachen, könnte dies Ihnen helfen herauszufinden, welche Tabellen überwacht und vielleicht ein wenig bereinigt werden müssen, um eine bessere Leistung zu erzielen. Sperren für diese Art von Tabellen sind für MySQL normal, aber es gibt natürlich Grenzen dafür, was vernünftig ist, wenn es um Sperrzeiten und Wartezeiten geht. Um einen guten Überblick über die Sperrsituation zu haben, können Sie aus verschiedenen Methoden wählen, je nachdem, auf welcher Ebene Sie sich befinden. Einige Alternativen sind:

  • Erstellen Sie Ihre eigene Überwachung mit z. B. „SHOW FULL PROCESSLISTund behandeln Sie die Ergebnisse nach Belieben.
  • Rufen Sie den globalen Statuswert für „Slow_queries“ (das ist ein Zähler) mit einem periodischen Zeitplan ab, um Trends und Spitzen anzuzeigen (z. B. pro Stunde oder pro Tag, die die festgelegte „long_query_timeüberschreiten).
  • Aktivieren Sie den eingebauten Slow Query Logger von MySQL, der normalerweise darauf eingestellt ist, Sperren über 10 Sekunden zu protokollieren. Denken Sie daran, dass dieser Logger die Leistung auch in gewissem Maße und abhängig von den Abfragen beeinträchtigen kann, wenn er aktiviert ist.

Wenn Sie eine gute Zusammenstellung des Slow Query-Logs von MySQL wünschen, können Sie sich „pt-query-digest“ von Percona ansehen, das Ihnen über ein Punktesystem einen guten Überblick über die schlimmsten Leistungsdiebe gibt. Wenn Sie das Protokoll überprüfen und feststellen, dass es jeden Tag um 14 Uhr beispielsweise Sperrungvorgänge gibt, ist es möglich, die Sperre einer kundenspezifischen geplanten Aufgabe zuzuordnen. Wenn möglich, ist es besser, Aufgaben außerhalb der Bürozeiten zu planen, um die Auswirkungen auf die Systembenutzer zu minimieren. In Fällen, in denen es nicht möglich ist, Aufgaben neu zu planen, könnte es an der Zeit sein, die Größe der Tabellen zu überwachen, die die langen Sperrungenm verursachen. Wenn Sie die Tabellen analysiert haben und festgestellt haben, dass keine Daten mehr sortiert werden müssen, könnte man einige Optionen in Erwägung ziehen:

  • Kann die Funktion, die die schweren Datenbankabfragen verursacht, umgeschrieben, optimiert und an die vorhandenen oder zukünftigen Datensätze angepasst werden?
  • Können die Sperren auf nicht produktbezogene Tabellen zurückgeführt werden? In diesem Fall könnte eine Überwachung der Indizes hilfreich sein.
  • Ist es an der Zeit, über eine Master/Slave-Konfiguration für die Datenbank nachzudenken? Wenn die Funktion hinter den Sperren auf eine Slave-Datenbank umgeleitet werden kann, hat dies natürlich eine große und positive Wirkung auf die Master-Datenbank. Ein weiterer großer Vorteil der M/S-Konfiguration besteht darin, dass Sie ein Datenbank-Backup durchführen können, ohne die Produktionsumgebung zu beeinträchtigen. Auf der anderen Seite erfordert eine M/S-Konfiguration einige Wartung, aber die Vorteile überwiegen oft die Nachteile, wenn sie auf die richtige Atz und Weise verwendet wird.

Fazit

Ziel dieses Artikels ist es, Sie daran zu erinnern, wie wichtig es ist, dass Ihre Daten und die dazugehörige Umgebung gesund bleiben, da dies ein so entscheidender Teil Ihres Unternehmens ist. Dies beinhaltet, dass das System mit gesunden Datensätzen reaktionsschnell bleibt, aber auch Vorsichtsmaßnahmen für mögliche zukünftige Probleme getroffen werden.

Vielleicht müssen Sie nicht sofort und gleichzeitig mit allen unterschiedlichen Kontrollen beginnen. Wenn Sie jedoch bisher nicht viel überwachen, ist es besser, mit den wichtigsten zu beginnen. Denn einige Überwachungen und planmäßige/regelmäßige Kontrollen sind besser als gar keine. Eine dringende Empfehlung ist auch, mehr als nur zu überwachen – denn natürlich ist es ein großer Vorteil, wenn Sie auch Alarmsignale bei der Überschreitung bestimmter Schwellenwerte erhalten! Überprüfen Sie regelmäßig, ob die Überwachung und die Alarmsignale wirklich funktionieren.

Ein Application-Management-Engagement bei Netadmin kann Ihnen bei vielen der oben genannten Punkte sowie bei vielen anderen wichtigen Verbesserungs- und vorbeugenden Maßnahmen helfen. Kontaktieren Sie uns bei Netadmin gerne, wenn Sie daran interessiert sind, Unterstützung bei den hier beschriebenen Themen oder verwandten Themen zu erhalten.

 

Starten Sie noch heute!
Beginnen Sie mit dem Aufbau Ihres Glasfasernetzes mit Netadmin Nine.

Netadmin entdecken