Betriebssystemüberwachung - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Betriebssystemüberwachung

Eine DB-Instance in Amazon RDS für MySQL oder MariaDB läuft auf dem Linux-Betriebssystem, das die zugrunde liegenden Systemressourcen nutzt: CPU, Arbeitsspeicher, Netzwerk und Speicher.

MySQL [(none)]> SHOW variables LIKE 'version%'; +-------------------------+---------------------+ | Variable_name | Value | +-------------------------+---------------------+ | version | 8.0.28 | | version_comment | Source distribution | | version_compile_machine | aarch64 | | version_compile_os | Linux | | version_compile_zlib | 1.2.11 | +-------------------------+---------------------+ 5 rows in set (0.00 sec)

Die Gesamtleistung Ihrer Datenbank und des zugrunde liegenden Betriebssystems hängen stark von der Auslastung der Systemressourcen ab. Beispielsweise ist die CPU die Schlüsselkomponente für die Leistung Ihres Systems, da sie die Anweisungen der Datenbanksoftware ausführt und andere Systemressourcen verwaltet. Wenn die CPU überbeansprucht wird (das heißt, wenn die Last mehr CPU-Leistung erfordert, als für Ihre DB-Instance bereitgestellt wurde), würde sich dieses Problem auf die Leistung und Stabilität Ihrer Datenbank und damit auf Ihre Anwendung auswirken.

Die Datenbank-Engine weist dynamisch Speicher zu und gibt ihn frei. Wenn im RAM nicht genügend Speicher vorhanden ist, um die aktuelle Arbeit zu erledigen, schreibt das System Speicherseiten in den Swap-Speicher, der sich auf der Festplatte befindet. Da die Festplatte viel langsamer ist als der Arbeitsspeicher, selbst wenn die Festplatte auf der SSD-NVMe-Technologie basiert, führt eine übermäßige Speicherzuweisung zu Leistungseinbußen. Eine hohe Speicherauslastung führt zu einer erhöhten Latenz der Datenbankantworten, da die Größe einer Seitendatei wächst, um zusätzlichen Speicher zu unterstützen. Wenn die Speicherzuweisung so hoch ist, dass sowohl der RAM als auch der Swap-Speicherplatz erschöpft sind, ist der Datenbankdienst möglicherweise nicht mehr verfügbar, und Benutzer könnten Fehler beobachten, wie[ERROR] mysqld: Out of memory (Needed xyz bytes).

MySQL- und MariaDB-Datenbankverwaltungssysteme verwenden das Speichersubsystem, das aus Festplatten besteht, die speichernStrukturen auf der Festplattewie Tabellen, Indizes, Binärprotokolle, Redo-Logs, Undo-Logs und Doublewrite-Pufferdateien. Daher muss die Datenbank im Gegensatz zu anderen Softwaretypen viel Festplattenaktivität ausführen. Für den optimalen Betrieb Ihrer Datenbank ist es wichtig, dass Sie die Festplatten-I/O-Auslastung und die Festplattenspeicherzuweisung überwachen und optimieren. Die Datenbankleistung kann beeinträchtigt werden, wenn die Datenbank die von der Festplatte unterstützten maximalen IOPS oder des maximalen Durchsatzes erreicht. Beispielsweise können durch einen Indexscan verursachte Bursts von zufälligen Zugriffen zu einer großen Anzahl von I/O-Vorgängen pro Sekunde führen, was letztendlich an die Grenzen des zugrunde liegenden Speichers stoßen könnte. Bei vollständigen Tabellenscans wird das IOPS-Limit möglicherweise nicht erreicht, aber sie können zu einem hohen Durchsatz führen, der in Megabyte pro Sekunde gemessen wird. Es ist wichtig, die Speicherplatzzuweisung zu überwachen und Warnmeldungen zu generieren, da Fehler wieOS error code 28: No space left on devicekann zur Nichtverfügbarkeit und Beschädigung der Datenbank führen.

Amazon RDS stellt in Echtzeit Metriken für das Betriebssystem bereit, auf dem Ihre DB-Instance ausgeführt wird. Amazon RDS veröffentlicht automatisch einen Satz von Betriebssystemmetriken fürCloudWatch. Diese Metriken stehen Ihnen zur Anzeige und Analyse in der Amazon RDS-Konsole und imCloudWatchDashboards, und Sie können Alarme für die ausgewählten Metriken einrichten inCloudWatch. Beispiele sind unter anderem:

  • CPUUtilization— Der Prozentsatz der CPU-Auslastung.

  • BinLogDiskUsage— Die Menge an Festplattenspeicher, die von Binärprotokollen belegt wird.

  • FreeableMemory— Die Menge des verfügbaren Direktzugriffsspeichers. Dies entspricht dem Wert desMemAvailableFeld von/proc/meminfo.

  • ReadIOPS— Die durchschnittliche Anzahl von Festplatten-E/A-Lesevorgängen pro Sekunde.

  • WriteThroughput— Die durchschnittliche Anzahl von Byte, die pro Sekunde für den lokalen Speicher auf die Festplatte geschrieben werden.

  • NetworkTransmitThroughput— Der ausgehende Netzwerkverkehr auf dem DB-Knoten, der sowohl den Datenbankverkehr als auch den Amazon RDS-Verkehr kombiniert, der für die Überwachung und Replikation verwendet wird.

Eine vollständige Referenz aller von Amazon RDS veröffentlichten Metriken finden Sie unterCloudWatch, sieheAmazonasCloudWatchMetriken für Amazon RDSin der Amazon RDS-Dokumentation.

Die folgende Tabelle zeigt Beispiele fürCloudWatchMetriken für Amazon RDS, die auf der Amazon RDS-Konsole angezeigt werden.

CloudWatchMetriken für Amazon RDS, die auf der Amazon RDS-Konsole angezeigt werden

Das folgende Diagramm zeigt ähnliche Metriken, die in derCloudWatchArmaturenbrett.

CloudWatchMetriken für Amazon RDS, die auf der angezeigt werdenCloudWatchKonsole

Der andere Satz von Betriebssystemmetriken wird gesammelt vonVerbesserte Überwachungfür Amazon RDS. Dieses Tool bietet Ihnen einen besseren Einblick in den Zustand Ihrer Amazon RDS for MariaDB- und Amazon RDS for MySQL-DB-Instances, indem es Systemmetriken und Betriebssystemprozessinformationen in Echtzeit bereitstellt. Wenn duEnhanced Monitoring aktivierenauf Ihrer DB-Instance und stellen Sie die gewünschte Granularität ein. Das Tool sammelt die Betriebssystemmetriken und Prozessinformationen, die Sie auf derAmazon RDS-Konsole, wie auf dem folgenden Bildschirm gezeigt.

Von Enhanced Monitoring gesammelte Betriebssystemmetriken

Einige der wichtigsten Kennzahlen, die von Enhanced Monitoring bereitgestellt werden, sind:

  • cpuUtilization.total— Der Gesamtprozentsatz der verwendeten CPU.

  • cpuUtilization.user— Der Prozentsatz der CPU, die von Benutzerprogrammen verwendet wird.

  • memory.active— Die Menge des zugewiesenen Speichers in Kilobyte.

  • memory.cached— Die Speichermenge, die für das Zwischenspeichern von dateisystembasierten I/O verwendet wird.

  • loadAverageMinute.one— Die Anzahl der Prozesse, die in der letzten Minute CPU-Zeit angefordert haben.

Eine vollständige Liste der Metriken finden Sie unterBetriebssystemmetriken in Enhanced Monitoringin der Amazon RDS-Dokumentation.

In der Amazon RDS-Konsole enthält die Betriebssystemprozessliste Details zu jedem Prozess, der in Ihrer DB-Instance ausgeführt wird. Die Liste ist in drei Abschnitte unterteilt:

  • Betriebssystemprozesse‒ Dieser Abschnitt stellt eine aggregierte Zusammenfassung aller Kernel- und Systemprozesse dar. Diese Prozesse haben im Allgemeinen nur minimale Auswirkungen auf die Datenbankleistung.

  • RDS-Prozesse— Dieser Abschnitt enthält eine Zusammenfassung derAWSProzesse, die zur Unterstützung einer Amazon RDS-DB-Instance erforderlich sind. Es umfasst beispielsweise den Amazon RDS-Management-Agenten, Überwachungs- und Diagnoseprozesse und ähnliche Prozesse.

  • Untergeordnete RDS-Prozesse— Dieser Abschnitt enthält eine Zusammenfassung der Amazon RDS-Prozesse, die die DB-Instance unterstützen — in diesem Fall diemysqldProzess und seine Threads. DermysqldThreads erscheinen verschachtelt unter dem übergeordnetenmysqldverarbeiten.

Die folgende Bildschirmdarstellung zeigt die Liste der Betriebssystemprozesse in der Amazon RDS-Konsole.

Liste der Betriebssystemprozesse in der Amazon RDS-Konsole

Amazon RDS liefert die Metriken von Enhanced Monitoring in IhreCloudWatchLoggt das Konto. Die Überwachungsdaten, die auf der Amazon RDS-Konsole angezeigt werden, werden abgerufen vonCloudWatchLogs. Du kannst auchrufen Sie die Metriken für eine DB-Instance als Log-Stream abvonCloudWatchLogs. Diese Metriken werden im JSON-Format gespeichert. Sie können die JSON-Ausgabe von Enhanced Monitoring verwenden vonCloudWatchLoggt sich in ein Überwachungssystem Ihrer Wahl ein.

Um Grafiken auf dem anzuzeigenCloudWatchDashboard und Alarme erstellen, die eine Aktion auslösen würden, wenn eine Metrik den definierten Schwellenwert überschreitet, müssen Sie Metrikfilter in erstellenCloudWatchvonCloudWatchLogs. Eine ausführliche Anleitung finden Sie in derAWS re:Artikel postenzum Filtern von Enhanced MonitoringCloudWatchProtokolle zur Generierung automatisierter benutzerdefinierter Metriken für Amazon RDS.

Das folgende Beispiel veranschaulicht die benutzerdefinierte Metrik.CPU.Userin derCustom/RDSNamespace. Diese benutzerdefinierte Metrik wird durch Filtern von erstelltcpuUtilization.userVerbesserte Überwachungsmetrik vonCloudWatchLogs.

Benutzerdefinierte cpu.User-Metrik

Wenn die Metrik in der verfügbar istCloudWatchRepository, in dem Sie es anzeigen und analysieren könnenCloudWatchDashboards, wenden Sie weitere Mathematik- und Abfrageoperationen an und richten Sie einen Alarm ein, um diese spezifische Metrik zu überwachen und Warnungen zu generieren, falls die beobachteten Werte nicht den definierten Alarmbedingungen entsprechen.