Zustandsmonitor
Health Monitor erfasst Statistiken zur CPU-Auslastung des Systems, zur Datenträgerauslastung, zur Speicherauslastung und zum Serverprozess MySQL (mysqld). Die Statistiken werden in Historientabellen protokolliert, für die Health Monitor einmal pro Minute Proben nimmt und die Daten eines Tages beibehält. Sie können diese Statistiken auch in Tabellen aufrufen, die bei Bedarf mit aktuellen Messwerten gefüllt werden, wenn Sie sie abfragen.
Health Monitor - Überblick
Health Monitor erfasst alle sechzig Sekunden Informationen zum Festplattenspeicher, Systemspeicherinformationen und verarbeitet Speicherinformationen und speichert die Daten eines Tages in Tabellen im Performance Schema von MySQL Server. Wenn der verfügbare Speicherplatz oder der verfügbare Speicher unter bestimmte voreingestellte Schwellenwerte fällt, gibt Health Monitor Warnungen aus und protokolliert ihn in der Tabelle performance_schema.error_log.
Neben der Überwachung der aktuellen Datenträgernutzung trägt der Zustandsmonitor dazu bei, die Speicherauslastung zu verhindern, indem die zukünftige Nutzung durch aktuelle Trends und tägliche Zyklen vorhergesagt wird. Stündlich werden Prognosen für drei Horizonte generiert: 1 Stunde, 24 Stunden und 7 Tage, und sie werden in die Tabelle performance_schema.disk_forecast geschrieben. Außerdem wird eine stündliche Zusammenfassung erstellt und in die Tabelle performance_schema.disk_forecast_summary geschrieben. Prognosen sind im Allgemeinen genauer für stabile Workloads. Die Genauigkeit ist bei stark volatilen oder unregelmäßigen Datenträgernutzungsmustern geringer.
Health Monitor verwendet MiB/GiB/TiB-Speichereinheiten mit 100 GB = 93 GiB.
Der Gesamtspeicher, der für ein DB-System verfügbar ist, enthält Folgendes:
- Verfügbarer Speicher: Der Festplattenspeicher nach der Speicherreservierung wird vom Gesamtspeicher ausgeschlossen.
- Speicherreserve: Der Festplattenspeicherplatz, der kleiner als der
disk_low_space_level- unddisk_low_space_percent-Konfigurationsvariablen ist. Der Standardwert vondisk_low_space_levelist 5.000 MiB, und der Standardwert vondisk_low_space_percentbeträgt 4% des Gesamtspeichers. - Kritischer Speicher: Der Festplattenspeicher in der Speicherreserve unter dem kritischen Schwellenwert, der von der Konfigurationsvariable
disk_low_space_critical_leveldefiniert wird. Dies ist der minimal verfügbare Festplattenspeicherplatz für das System, um die Festplattenauslastung zu vermeiden. Der kritische Standardspeicherplatz ist 2.000 MiB.
Warnungen zu Festplattenspeicher
Wenn der Speicherplatz unter einen bestimmten Prozentsatz des verfügbaren Speichers fällt, gibt Health Monitor die folgenden Warnungen aus und protokolliert ihn in der Tabelle performance_schema.error_log:
WARNING_DISK_USAGE_LEVEL_1: Wenn der Festplattenspeicher unter 20% des verfügbaren Speichers fällt.WARNING_DISK_USAGE_LEVEL_2: Wenn der Festplattenspeicher unter 10% des verfügbaren Speichers fällt.WARNING_DISK_USAGE_LEVEL_3: Wenn der Festplattenspeicher unter 5% des verfügbaren Speichers fällt.
Beispiel: Wenn der Gesamtspeicher 100.000 MiB beträgt und die Speicherreserve kleiner als die folgenden beiden Konfigurationsvariablen ist:
disk_low_space_level: Der Standardwert ist 5.000 MiB.disk_low_space_percent: 4% des Gesamtspeichers, d.h. 4% von 100.000 MiB = 4.000 MiB.
Die Speicherreserve beträgt 4.000 MiB, was kleiner als die beiden Konfigurationsvariablen ist.
Den verfügbaren Speicher finden Sie, indem Sie die Lagerreserve vom Gesamtspeicher ausschließen:
100,000 - 4,000 = 96,000 MiBDer Zustandsmonitor gibt die folgenden Warnungen aus:
WARNING_DISK_USAGE_LEVEL_1: Wenn der Festplattenspeicher unter 20% des verfügbaren Speichers fällt, also 20/100*96.000 = 19.200 MiB.WARNING_DISK_USAGE_LEVEL_2: Wenn der Festplattenspeicher unter 10% des verfügbaren Speichers fällt, also 10/100*96.000 = 9.600 MiB.WARNING_DISK_USAGE_LEVEL_3: Wenn der Festplattenspeicher unter 5% des verfügbaren Speichers fällt, also 5/100*96.000 = 4.800 MiB.
Signifikanter oder anhaltender Speicherplatzmangel
Health Monitor definiert einen erheblichen oder anhaltenden Speicherplatzmangel, wenn die folgenden Bedingungen erfüllt sind:
- Erheblicher Engpass: Der Festplattenspeicher fällt unter den kritischen Schwellenwert, der von
disk_low_space_critical_leveldefiniert wird. - Nachhaltiger Engpass: Der Festplattenspeicher fällt unter die Speicherreserve und verbleibt dann für die von der Konfigurationsvariablen
disk_low_space_durationdefinierte Dauer in der Speicherreserve.
Wenn ein erheblicher oder anhaltender Speicherplatzmangel auftritt, führt Health Monitor Folgendes aus:
SUPER_READ_ONLY=ON: Setzt die SystemvariablenSUPER_READ_ONLYin MySQL Server auf ON. MySQL Server lehnt alle neu eingehenden SQL-Schreibanweisungen (UPDATE,INSERT,DELETEundDDL) unabhängig von Benutzern und Berechtigungen ab. Laufende Transaktionen können abgeschlossen werden, neue Schreibvorgänge sind jedoch untersagt, bis der Festplattenspeicher wieder verfügbar ist. Sie können keine Daten in das Cluster HeatWave laden, wenn sich der Server im ModusSUPER_READ_ONLYbefindet.In einigen Fällen hindern globale Lesesperren, laufende Commits oder Metadatensperren den Zustandsmonitor daran, die Systemvariable
SUPER_READ_ONLYfestzulegen. Wenn Sie in diesen Fällen die Variablehealth_monitor.disk_fallback_forcefestlegen, identifiziert und beendet der Zustandsmonitor aktive Abfragen mit globalen Sperren, um die SystemvariableSUPER_READ_ONLYfestzulegen.OFFLINE_MODE=ON: Setzt die SystemvariableOFFLINE_MODEim MySQL Server auf ON. MySQL Server trennt die Verbindungen von Clientbenutzern, die nicht über die BerechtigungCONNECTION_ADMINverfügen, beendet laufende Anweisungen, hebt Sperren auf und blockiert neue Verbindungen mit einem entsprechenden Fehler.super_read_only_disk_full=ON: Setzt die Statusvariablesuper_read_only_disk_fullauf ON, um anzuzeigen, dass der schreibgeschützte Modus aufgrund von wenig Speicherplatz ausgelöst wurde. Sie können den Wert der Statusvariablesuper_read_only_disk_fullmit einem der folgenden Befehle anzeigen:SHOW GLOBAL STATUS WHERE variable_name = 'super_read_only_disk_full';SELECT * FROM performance_schema.global_status WHERE variable_name = 'super_read_only_disk_full';
Systemvariablen ändern das Verhalten von MySQL Server, während Statusvariablen statische Indikatoren für den MySQL Server-Status sind.
Recovery in normalem Vorgang
Nachdem SUPER_READ_ONLY und OFFLINE_MODE festgelegt wurden, führt Health Monitor Folgendes aus:
- Überprüfen Sie den Speicherplatz jede Minute.
- Legen Sie
OFFLINE_MODE=OFFfest, wenn der verfügbare Speicherplatz wiederhergestellt wird unddisk_recovery_time_1Sekunden oder länger überdisk_recovery_levelbleibt. - Legen Sie
SUPER_READ_ONLY=OFFfest, wenn der verfügbare Speicherplatz wiederhergestellt wird und für weiteredisk_recovery_time_2Sekunden oder länger überdisk_recovery_levelbleibt.
Normale Vorgänge werden fortgesetzt, sobald der Festplattenspeicher disk_recovery_time_1 + disk_recovery_time_2 Sekunden lang über disk_recovery_level bleibt.
Sobald der Speicherplatz wiederhergestellt wird, löscht Health Monitor die Systemvariablen SUPER_READ_ONLY und OFFLINE_MODE sowie die Statusvariable super_read_only_disk_full. Sie müssen die Instanz MySQL nicht neu starten, um die Variablen zu löschen.
Wenn wieder ein erheblicher oder anhaltender Speicherplatzmangel auftritt, setzt der Zustandsmonitor die Systemvariablen SUPER_READ_ONLY und OFFLINE_MODE sowie die Statusvariable super_read_only_disk_full im MySQL Server wieder auf ON.
Bevor eine primäre Instanz eines High-Availability-DB-Systems in den normalen Betriebsmodus versetzt wird, prüft der Health Monitor, ob der Server mit der Gruppenmehrheit online ist. Der Zustandsmonitor legt niemals SUPER_READ_ONLY oder OFFLINE_MODE für die sekundären Instanzen fest.
Recovery-Inkrement, maximaler Recovery-Zyklus und Recovery-Fenster
Jedes Mal, wenn MySQL Server aus einem erheblichen oder anhaltenden Speicherplatzmangel wiederhergestellt wird, erhöht der Health Monitor die Datenträger-Recovery-Zeit um disk_recovery_increment Sekunden.
Beispiel: Wenn disk_recovery_time_1 = 300 Sekunden und disk_recovery_time_2 = 600 Sekunden und disk_recovery_increment = 400 Sekunden sind, beträgt die Datenträger-Recovery-Zeit für jeden Zyklus wie folgt:
- Zyklus 1:
disk_recovery_time_1= 300 Sekunden,disk_recovery_time_2= 600 Sekunden - Zyklus 2:
disk_recovery_time_1= (300 + 400) Sekunden,disk_recovery_time_2= (600+400) Sekunden - Zyklus 3:
disk_recovery_time_1= (300+400+400) Sekunden,disk_recovery_time_2= (600+400+400) Sekunden
Der Health Monitor stellt den normalen Betriebsmodus maximal disk_recovery_max_cycles Mal innerhalb eines festen Fensters von disk_recovery_window Sekunden ab dem letzten Recovery-Zyklus wieder her. Beispiel: Wenn disk_recovery_max_cycles auf 5 und disk_recovery_window auf 86.400 Sekunden (1 Tag) gesetzt ist, kann der Zustandsmonitor in einem Fenster von 86.400 Sekunden fünfmal den normalen Betriebsmodus wiederherstellen. Wenn beim sechsten Mal im selben Fenster ein erheblicher oder anhaltender Mangel auftritt, werden die Systemvariablen SUPER_READ_ONLY und OFFLINE_MODE auf ON gesetzt.
Die Recovery-Anzahl wird nach disk_recovery_window Sekunden nach dem letzten Recovery zurückgesetzt.
Speicherwarnungen
Wenn der verfügbare Speicher unter bestimmte Schwellenwerte fällt, gibt Health Monitor die folgenden Warnungen aus:
WARNING_MEMORY_USAGE_LEVEL_1: Wenn der verfügbare Speicher unter 1024 MiB fällt.WARNING_MEMORY_USAGE_LEVEL_2: Wenn der verfügbare Speicher unter 500 MiB fällt.WARNING_MEMORY_USAGE_LEVEL_3: Wenn der verfügbare Speicher unter 100 MiB fällt.
Health Monitor protokolliert die Informationen zu MySQL-Version, globaler Speicherauslastung und verschiedenen Konfigurationseinstellungen im Fehlerlog. Die Informationen werden als durch Komma getrennte Werte protokolliert, um sie zur weiteren Analyse in eine Tabelle zu übertragen.
Prognosen für Datenträgernutzung
Health Monitor analysiert Ihre Datenträgernutzungstrends und prognostiziert potenzielle Speicherausfälle. So können Sie ungeplante Ausfälle vermeiden und Maßnahmen ergreifen, bevor der Festplattenspeicher kritisch wird.
Der Prognosestatus für die Datenträgernutzung kann einen der folgenden Werte aufweisen:
CRITICAL: Wenn eine der folgenden Bedingungen erfüllt ist:- Aktuelle Nutzung ≥ 90% UND Tage bis Löschung ≤ 2 Tage.
- Verwendungsrate ≥ 15%.
- Aktuelle Nutzung ≥ 95%.
WARNING: Wenn Aktuelle Nutzung ≥ 80% UND Tage bis Löschung ≤ 7 Tage beträgt.NORMAL: Wenn die Prognose die Bedingungen fürCRITICALoderWARNINGnicht erfüllt.
Wobei
- Aktuelle Nutzung: Der aktuelle Prozentsatz der belegten Speicherkapazität.
- Nutzungsrate: Die Änderungsrate der Datenträgerauslastung, prozentuale Änderung pro Tag.
- Tage bis Löschung: Die Anzahl der Tage bis zur Speicherauslastung basierend auf dem Trend der prognostizierten Nutzung.
Die Prognosen für die Datenträgerauslastung werden in die Tabellen performance_schema.disk_forecast und performance_schema.disk_forecast_summary geschrieben. Diese Tabellen werden stündlich aktualisiert. Außerdem wird jede Stunde eine Zusammenfassung der Datenträgerauslastungsprognose in das Serverfehlerlog geschrieben.
Health Monitor-Tabellen anzeigen
Health Monitor-Tabellen speichern Überwachungsdaten und Statistiken im Performance Schema von MySQL Server.
Die Integritätstabellen enthalten Informationen zum Datenträgerspeicher, Informationen zum Systemspeicher und Informationen zum Prozessspeicher.
Die Statistiktabellen enthalten Statistiken zur CPU-Auslastung des Systems, zur Datenträgerauslastung, zur Speicherauslastung und zum Serverprozess MySQL (mysqld). Jede Statistiktabelle enthält zwei Versionen: eine On-Demand-Version, die bei der Abfrage mit aktuellen Messwerten aufgefüllt wird, und eine Historienversion, für die Health Monitor einmal pro Minute Stichproben abruft und die Daten eines Tages beibehält. Beide Versionen der Tabelle haben dieselben Spalten.
Befehlszeilenclient verwenden
Mit einem Befehlszeilenclient wie MySQL-Client oder MySQL Shell können Sie die Health Monitor-Tabellen anzeigen.
- Einen Befehlszeilenclient wie MySQL Shell, der mit dem DB-System verbunden ist. Siehe Verbindung zu einem DB-System herstellen.
+-------------------------+---------------------+-------------+-----------------+-------------+-------------+
| DEVICE | TIMESTAMP | TOTAL_BYTES | AVAILABLE_BYTES | USE_PERCENT | MOUNT_POINT |
+-------------------------+---------------------+-------------+-----------------+-------------+-------------+
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:12:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:13:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:14:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:15:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:16:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:17:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:18:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:19:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:20:08 | 53656686592 | 51364134912 | 4.27 | /db |
| /dev/mapper/vg_db-lv_db | 2021-08-08 16:21:08 | 53656686592 | 51364134912 | 4.27 | /db |Zustandsmonitortabellen
Informationen zu Datenträgerspeicher, Systemspeicherinformationen und Prozessspeicherinformationen finden Sie in den Health Monitor-Tabellen.
Die vollständige Liste der Health Monitor-Tabellen lautet wie folgt:
performance_schema.health_block_device: Informationen zum Festplattenspeicherstatus.performance_schema.health_system_memory: Informationen zum Systemspeicherstatus.performance_schema.health_process_memory: Informationen zum Arbeitsspeicherstatus verarbeiten.performance_schema.system_cpu_stats: Statistiken zur CPU-Auslastung, nach Bedarf aufgefüllt.performance_schema.system_cpu_stats_history: Statistiken zur gespeicherten CPU-Auslastung.performance_schema.system_disk_stats: Statistiken zur Datenträgerauslastung, die nach Bedarf aufgefüllt werden.performance_schema.system_disk_stats_history: Statistiken zur Datenträgerauslastung.performance_schema.system_memory_stats: Statistiken zur Speicherauslastung, die nach Bedarf aufgefüllt werden.performance_schema.system_memory_stats_history: Statistiken zur Speicherauslastung.performance_schema.system_process_stats: Prozess- und Threadstatistiken, nach Bedarf aufgefüllt.performance_schema.system_process_stats_history: Gespeicherte Prozess- und Threadstatistiken.performance_schema.disk_metric: Raw-Datenträgermetriken für die letzten 14 Tage.performance_schema.disk_forecast: Prognosen zur stündlichen Datenträgerauslastung für 1 Stunde, 1 Tag und 1 Woche.performance_schema.disk_forecast_summary: Prognoseübersichten für stündliche Datenträgerauslastung.performance_schema.error_log: Warnungen und Fehler. Siehe Fehlerlog anzeigen.
Tabelle performance_schema.health_block_device
Health Monitor verwendet die Tabelle performance_schema.health_block_device im Performanceschema von MySQL Server, um Daten auf belegtem und verfügbarem Datenträgerspeicher in einem DB-System zu speichern.
Tabelle 17-1: health_block_device: Performanceschema-Tabelle
| Spalte | Beschreibung |
|---|---|
DEVICE |
Der Gerätename für die Festplatte. |
TIMESTAMP |
Die Zeit, zu der das Datenbeispiel in dieser Zeile erfasst wurde. |
TOTAL_BYTES |
Die gesamte Speichermenge auf dem Gerät in Byte. |
AVAILABLE_BYTES |
Die Menge des auf dem Gerät verfügbaren Speichers in Byte. |
USE_PERCENT |
Der belegte Speicherplatz in Prozent. |
MOUNT_POINT |
Der Mount Point des Geräts. |
Tabelle performance_schema.health_system_memory
Health Monitor verwendet die Tabelle performance_schema.health_system_memory im Performanceschema von MySQL Server, um Daten zur Speicherauslastung durch das DB-System zu speichern
Tabelle 17-2: health_system_memory: Performanceschema-Tabelle
| Spalte | Beschreibung |
|---|---|
TIMESTAMP |
Die Zeit, zu der das Datenbeispiel in dieser Zeile erfasst wurde. |
TOTAL_MEMORY |
Der gesamte Arbeitsspeicher für das System in Byte. |
AVAILABLE |
Der zum Starten neuer Anwendungen ohne Swapping verfügbare Speicher in Byte. |
USE_PERCENT |
Der Prozentsatz des belegten Speichers. |
MEMORY_FREE |
Die Menge des nicht verwendeten Speichers. |
MEMORY_FS_CACHE |
Der Dateisystemseitencache. |
SWAP_TOTAL |
Der gesamte Swap-Speicher. |
SWAP_FREE |
Freier Swapspeicher gesamt. |
Tabelle performance_schema.health_process_memory
Health Monitor verwendet die Tabelle performance_schema.health_process_memory im Performanceschema von MySQL Server, um Daten zur Speicherauslastung durch den MySQL Server-Prozess (mysqld) im DB-System zu speichern.
Tabelle 17-3: health_process_memory: Performanceschema-Tabelle
| Spalte | Beschreibung |
|---|---|
TIMESTAMP |
Die Zeit, zu der das Datenbeispiel in dieser Zeile erfasst wurde. |
PROCESS_NAME |
Name des MySQL Server-Prozesses |
PID |
Die System-ID für den MySQL Server-Prozess. |
VM_RSS |
Die Resident-Set-Größe des MySQL-Serverprozesses in Byte. |
VM_DATA |
Die Größe des MySQL Server-Prozessdatensegments in Byte. |
VM_SWAP |
Die Größe des MySQL-Serverprozess-Swapsegments in Byte. |
PAGE_FAULTS |
Die Anzahl der Seitenfehler, die Datenträger-I/O erfordern. |
Tabelle performance_schema.system_cpu_stats
Health Monitor erfasst Statistiken zur CPU-Auslastung durch das DB-System. Die Statistiken sind in zwei Tabellen im Performance Schema von MySQL Server, einer On-Demand-Tabelle und einer entsprechenden Historientabelle verfügbar. Beide Tabellen haben dieselben Spalten.
Die Tabelle performance_schema.system_cpu_stats im Performance Schema von MySQL Server wird bei der Abfrage mit einem Datenbeispiel aufgefüllt. In der Tabelle performance_schema.system_cpu_stats_history werden Datenbeispiele regelmäßig gespeichert.
Die Statistiken in diesen Tabellen stammen aus der Linux-Systemdatei /proc/stat.
Tabelle 17-4: Performanceschematabellen system_cpu_stats und system_cpu_stats_history
| Spalte | Beschreibung |
|---|---|
TIMESTAMP |
Die Zeit, zu der das Datenbeispiel in dieser Zeile erfasst wurde. |
CPU |
Die CPU-Zeile zeigt die aggregierten CPU-Auslastungsdaten an, und jede nummerierte Zeile (z.B. cpu0, cpu1) zeigt Daten für einen einzelnen Prozess an. Alle Zeitangaben sind in Millisekunden. |
USER_MS |
Die im Benutzermodus aufgewendete Zeit. |
NICE_MS |
Die Zeit, die im Benutzermodus mit niedriger Priorität verbracht wurde. |
SYSTEM_MS |
Die im Systemmodus verbrachte Zeit. |
IDLE_MS |
Die in der inaktiven Task verbrachte Zeit. |
IOWAIT_MS |
Die Zeit, die für das Warten auf den Abschluss von I/O aufgewendet wurde. |
IRQ_MS |
Die Zeit, die für die Wartung von Hardwareunterbrechungen aufgewendet wurde. |
SOFTIRQ_MS |
Die Zeit, die für die Wartung von Softwareunterbrechungen aufgewendet wurde. |
STEAL_MS |
Die Zeit, die für die Ausführung anderer Betriebssysteme in einer virtualisierten Umgebung aufgewendet wurde. |
GUEST_MS |
Die Zeit, die für die Ausführung einer virtuellen CPU mit normaler Priorität aufgewendet wurde. |
GUEST_NICE_MS |
Die Zeit, die für die Ausführung einer virtuellen CPU mit niedriger Priorität aufgewendet wurde. |
Tabelle performance_schema.system_disk_stats
Health Monitor erfasst Statistiken zur Datenträgerauslastung durch das DB-System. Die Statistiken sind in zwei Tabellen im Performance Schema von MySQL Server, einer On-Demand-Tabelle und einer entsprechenden Historientabelle verfügbar. Beide Tabellen haben dieselben Spalten.
Die Tabelle performance_schema.system_disk_stats im Performance Schema von MySQL Server wird bei der Abfrage mit einem Datenbeispiel aufgefüllt. In der Tabelle performance_schema.system_disk_stats_history werden Datenbeispiele regelmäßig gespeichert.
Die Statistiken in diesen Tabellen stammen aus der Linux-Systemdatei /proc/diskstats.
Tabelle 17-5: Performanceschematabellen system_disk_stats und system_disk_stats_history
| Spalte | Beschreibung |
|---|---|
TIMESTAMP |
Die Zeit, zu der das Datenbeispiel in dieser Zeile erfasst wurde. |
DEVICE |
Der Gerätename für diese Festplatte. |
READS |
Die Anzahl der erfolgreich abgeschlossenen Lesevorgänge. |
READ_BYTES |
Die Anzahl der gelesenen Byte. |
READ_TIME_MS |
Die Lesezeit in Millisekunden. |
WRITES |
Die Anzahl der erfolgreich abgeschlossenen Schreibvorgänge. |
WRITE_BYTES |
Die Anzahl der geschriebenen Byte. |
WRITE_TIME_MS |
Die Schreibzeit in Millisekunden. |
FLUSHES |
Die Anzahl von Flush-Anforderungen wurde erfolgreich abgeschlossen. |
FLUSH_TIME_MS |
Die für das Spülen aufgewendete Zeit in Millisekunden. |
Tabelle performance_schema.system_memory_stats
Health Monitor erfasst Statistiken zur Speicherauslastung durch das DB-System. Die Statistiken sind in zwei Tabellen im Performance Schema von MySQL Server, einer On-Demand-Tabelle und einer entsprechenden Historientabelle verfügbar. Beide Tabellen haben dieselben Spalten.
Die Tabelle performance_schema.system_memory_stats im Performance Schema von MySQL Server wird bei der Abfrage mit einem Datenbeispiel aufgefüllt. In der Tabelle performance_schema.system_memory_stats_history werden Datenbeispiele regelmäßig gespeichert.
Die Statistiken in diesen Tabellen stammen aus der Linux-Systemdatei /proc/meminfo.
Tabelle 17-6: Performanceschematabellen system_memory_stats und system_memory_stats_history
| Spalte | Beschreibung |
|---|---|
TIMESTAMP |
Die Zeit, zu der das Datenbeispiel in dieser Zeile erfasst wurde. |
TOTAL_BYTES |
Der gesamte nutzbare Systemspeicher in Byte. |
FREE_BYTES |
Der ungenutzte Speicher. |
USED_BYTES |
Der insgesamt verwendete Speicher. |
AVAILABLE_BYTES |
Der geschätzte Speicher, der zum Starten neuer Anwendungen verfügbar ist, in Byte. |
BUFFER_BYTES |
Die Speichermenge, die für den temporären Speicher für Raw-Datenträgerblöcke verwendet wird. |
CACHED_BYTES |
Die Speichermenge, die zum Zwischenspeichern von Dateien verwendet wird, die von der Festplatte gelesen werden (der Seitencache). |
SLAB_BYTES |
Die Speichermenge, die zum Zwischenspeichern von kernelinternen Datenstrukturen verwendet wird. |
SWAP_TOTAL_BYTES |
Die Gesamtmenge des auf der Festplatte verfügbaren Swapspeichers. |
SWAP_FREE_BYTES |
Der gesamte Swapspeicher, der aktuell nicht verwendet wird. |
SWAP_USED_BYTES |
Die gesamte Speichermenge, die aus dem RAM ausgetauscht wurde und sich vorübergehend auf der Festplatte befindet. |
SWAP_IN |
Die Speichermenge, die von der Festplatte in KB pro Sekunde in den RAM zurückgelagert wurde. |
SWAP_OUT |
Die Speichermenge, die vom RAM auf die Festplatte ausgetauscht wird, in KB pro Sekunde. |
Tabelle performance_schema.system_process_stats
Health Monitor erfasst Statistiken für jeden Thread, der vom MySQL Server-Prozess im DB-System verwendet wird. Die Statistiken sind in zwei Tabellen im Performance Schema von MySQL Server, einer On-Demand-Tabelle und einer entsprechenden Historientabelle verfügbar. Beide Tabellen haben dieselben Spalten.
Die Tabelle performance_schema.system_process_stats im Performance Schema von MySQL Server wird bei der Abfrage mit einem Datenbeispiel aufgefüllt. In der Tabelle performance_schema.system_process_stats_history werden Datenbeispiele regelmäßig gespeichert.
Bei Prozessstatistiken gibt die On-Demand-Tabelle eine Zeile für jeden Thread zurück, der vom mysqld-Prozess verwendet wird. Die Historientabelle speichert jedoch eine einzelne Zeile für jedes Beispiel mit den aggregierten Summen für alle Threads, die vom mysqld-Prozess verwendet werden.
Die Statistiken in diesen Tabellen stammen aus der Linux-Systemdatei /proc/self/task/[pid]/stat.
Tabelle 17-7: Performanceschematabellen system_process_stats und system_process_stats_history
| Spalte | Beschreibung |
|---|---|
TIMESTAMP |
Die Zeit, zu der das Datenbeispiel in dieser Zeile erfasst wurde. |
PID |
Die Prozess-ID. |
PROCESS_NAME |
Der Prozessname: mysqld.
|
TID |
Die Thread-ID für den einzelnen Thread, der in dieser Zeile angezeigt wird. |
THREAD_NAME |
Der instrumentierte Threadname für den einzelnen Thread, der in dieser Zeile angezeigt wird. |
STATE |
Ein Zeichen, das den Threadstatus zum Zeitpunkt des Beispiels anzeigt: Wird ausgeführt (R), befindet sich in einem unterbrechungsfreien Wartezustand (S), wartet in einem unterbrechungsfreien Datenträger-Sleep (D), Zombie-Thread (Z), gestoppt in einem Signal oder Trace gestoppt (T), Paging (W), tot (X), Wakekill (K), wach (W) oder geparkt (P).
|
UTIME_MS |
Die Zeit, die dieser Thread im Benutzermodus in Millisekunden verbracht hat. |
STIME_MS |
Die Zeit, die dieser Thread im Kernel-Modus verbracht hat, in Millisekunden. |
CUTIME_MS |
Die Zeit, die untergeordnete Prozesse dieses Prozesses im Benutzermodus in Millisekunden verbracht haben. |
CSTIME_MS |
Die Zeit, die untergeordnete Prozesse dieses Prozesses im Kernelmodus in Millisekunden verbracht haben. |
NUM_THREADS |
Der Nonnenschwanz der Fäden in diesem Prozess. |
VSIZE_BYTES |
Die Größe des virtuellen Speichers in Byte. |
RSS_BYTES |
Die Anzahl der Byte, die der Prozess im realen Speicher hat (die Resident Set-Größe). |
RSSLIM_BYTES |
Der Grenzwert in Byte für die Resident Set-Größe des Prozesses. |
PROCESSOR |
Die CPU-Nummer, auf der der Thread zuletzt ausgeführt wurde. |
DELAYACCT_BLKIO_MS |
Die aggregierten Block-I/O-Verzögerungen in Millisekunden. |
GUEST_TIME_MS |
Die Gastzeit für den Prozess in Millisekunden. |
CGUEST_TIME_MS |
Die Gastzeit für die untergeordneten Prozesse des Prozesses in Millisekunden. |
READ_BYTES |
Die Anzahl der Byte, die dieser Prozess aus der Speicherebene abgerufen hat. |
WRITE_BYTES |
Die Anzahl der Byte, die dieser Prozess an die Speicherebene gesendet hat. |
performance_schema.disk_metric
Health Monitor verwendet die Tabelle performance_schema.disk_metric im Performance Schema von MySQL Server, um eine minutengenaue Historie der Datenträgernutzung für die letzten 14 Tage zu speichern. Diese Raw-Messungen werden verwendet, um Prognosen zur Datenträgernutzung zu generieren.
Tabelle 17-8: Performanceschematabelle disk_metric
| Spalte | Beschreibung |
|---|---|
TIMESTAMP |
Der Zeitpunkt der Messung. |
VOLUME_SIZE_MB |
Die Größe des Block-Volumes in MiB. |
USED_MB |
Der auf dem Block-Volume belegte Speicherplatz in MiB. |
performance_schema.disk_forecast
Health Monitor verwendet die Tabelle performance_schema.disk_forecast im Performance Schema von MySQL Server, um stündliche Datenträgerauslastungsprognosen für mehrere Horizonte zu speichern: 1 Stunde, 24 Stunden und 7 Tage. Jede Zeile zeichnet die Prognosezeit, die Zielzeit, den Horizont, die Volumengröße, den vorhergesagten belegten Speicherplatz in MiB und das Konfidenzintervall auf und unterstützt Verifizierung und Reporting.
Tabelle 17-9: Performanceschematabelle disk_forecast
| Spalte | Beschreibung |
|---|---|
timestamp
|
Datum und Uhrzeit der Prognoseerstellung. |
prediction_time
|
Datum und Uhrzeit der vorhergesagten Datenträgerebene. |
horizon_minutes
|
Der Prognosehorizont in Minuten, der 60, 1440 oder 10080 Minuten betragen kann. |
volume_size_mb
|
Die Block-Volume-Größe in MiB. |
forecast_mb
|
Der vorhergesagte belegte Festplattenspeicher in MiB. |
trend_mb_day
|
Die Neigung des prognostizierten Festplattenspeichers pro Tag in MiB. |
ci_95_lower_mb
|
Die untere Grenze des Konfidenzintervalls von 95% in MiB. |
ci_95_upper_mb
|
Die obere Grenze des Konfidenzintervalls von 95% in MiB. |
status
|
Der Status der projizierten Datenträgerauslastung: NORMAL, WARNING oder CRITICAL.
|
performance_schema.disk_forecast_summary
Health Monitor verwendet die Tabelle performance_schema.disk_forecast_summary im Performance Schema von MySQL Server, um die stündliche Prognoseübersicht zu speichern, die aktuelle Nutzung, Trend, ETA, sofern zutreffend, und den Status der prognostizierten Datenträgernutzung enthält. Jede Zeile erfasst den Snapshot, der für Berichte und Alerts verwendet wird.
Tabelle 17-10: Performanceschematabelle disk_forecast_summary
| Spalte | Beschreibung |
|---|---|
timestamp
|
Datum und Uhrzeit der Prognoseerstellung. |
volume_size_mb
|
Die Block-Volume-Größe in MiB. |
current_usage_mb
|
Die aktuelle Speicherplatzbelegung in MiB. |
current_usage_pct
|
Der Prozentsatz des gesamten belegten Speicherplatzes. |
trend_per_day_mb
|
Die Neigung des prognostizierten Festplattenspeichers pro Tag in MiB. |
usage_per_day_pct
|
Der pro Tag belegte Speicherplatz in Prozent. |
has_eta
|
Gibt an, ob der Festplattenspeicher innerhalb von 3 Tagen ausgeht. |
days_to_full
|
Anzahl der verbleibenden Tage, bis der Speicherplatz erschöpft ist. |
status
|
Der Status der projizierten Datenträgerauslastung: NORMAL, WARNING oder CRITICAL.
|
Zustandsmonitorvariablen anzeigen
Die Zustandsmonitorvariablen sind Konfigurationseinstellungen für die Überwachungsaktivität im DB-System. Sie können die Werte dieser Variablen nicht ändern.
Befehlszeilenclient verwenden
Mit einem Befehlszeilenclient wie MySQL-Client oder MySQL Shell können Sie die Variablen des Health Monitor und ihre Werte anzeigen.
- Ein ausgeführtes DB-System.
- Ein Befehlszeilenclient wie MySQL-Client oder MySQL Shell, der mit dem DB-System verbunden ist. Siehe Verbindung zu einem DB-System herstellen.
+----------------------------------------------+-------+
| Variable_name | Value |
+----------------------------------------------+-------+
| health_monitor.disk_fallback_enable | ON |
| health_monitor.disk_fallback_force | OFF |
| health_monitor.disk_low_space_critical_level | 2000 |
| health_monitor.disk_low_space_duration | 300 |
| health_monitor.disk_low_space_level | 5000 |
| health_monitor.disk_low_space_percent | 4 |
| health_monitor.disk_monitored | /db |
| health_monitor.disk_recovery_enable | ON |
| health_monitor.disk_recovery_increment | 300 |
| health_monitor.disk_recovery_level | 5 |
| health_monitor.disk_recovery_max_cycles | 3 |
| health_monitor.disk_recovery_time_1 | 300 |
| health_monitor.disk_recovery_time_2 | 300 |
| health_monitor.disk_recovery_window | 86400 |
| health_monitor.disk_retention | 86400 |
| health_monitor.disk_running | ON |
| health_monitor.disk_sample_rate | 60 |
| health_monitor.disk_usage_warning_level_1 | 20 |
| health_monitor.disk_usage_warning_level_2 | 10 |
| health_monitor.disk_usage_warning_level_3 | 5 |
...
+----------------------------------------------+-------+
35 rows in set (0.01 sec)Variablen des Zustandsmonitors
Alle Systemvariablen des Health Monitor haben das Präfix health_monitor. Sie können die Werte der Variablen nicht von ihren Standardwerten in einem DB-System ändern.
Das Präfix
health_monitor. wird in der folgenden Tabelle weggelassen. Beispiel: disk_fallback_enable ist eigentlich health_monitor.disk_fallback_enable.
Tabelle 17-11: Systemvariablen des Zustandsmonitors
| Systemvariable | Standardwert | Beschreibung |
|---|---|---|
disk_fallback_enable |
EIN | Wenn ein erheblicher oder anhaltender Speicherplatzmangel auftritt, setzt Health Monitor die Systemvariable SUPER_READ_ONLY und OFFLINE_MODE im MySQL Server auf ON.
|
disk_fallback_force |
OFF | Beenden Sie Vordergrundabfragen, die globale Metadatensperren enthalten, und wiederholen Sie die Einstellung SUPER_READ_ONLY.
|
disk_forecast_enable |
EIN | Steuert die Prognose der Datenträgerauslastung.
Wenn diese Option auf ON gesetzt ist, sind die Prognosetabellen zur Festplattennutzung verfügbar und werden aktualisiert. Der Datenträgerauslastungsprognosebericht wird ebenfalls generiert. Um die Vorhersage der Datenträgernutzung zu aktivieren, muss die Variable Wenn dieser Wert auf OFF gesetzt ist, werden die Prognosetabellen für die Datenträgerauslastung angezeigt, jedoch nicht aktualisiert. Der Prognosebericht für die Datenträgernutzung wurde nicht generiert. |
disk_forecast_sample_interval |
60 | Die Häufigkeit in Sekunden, mit der Datenträgermetriken in der Tabelle disk_metric aufgezeichnet werden. Der Wert kann zwischen 10 Sekunden und 86400 Sekunden (1 Tag) liegen. |
disk_forecast_run_mode |
NORMAL | Der Ausführungsmodus des Prognostikers für die Datenträgerauslastung. Dabei kann es sich um eine der folgenden Optionen handeln:
|
disk_low_space_critical_level |
2.000 | Der kritische niedrige Schwellenwert für den Speicherplatz in MiB. Wenn der verfügbare Speicherplatz für eine beliebige Dauer unter diesen Wert fällt, legt Health Monitor die Modi SUPER_READ_ONLY und OFFLINE_MODE auf MySQL Server fest.
|
disk_low_space_duration |
300 | Die Dauer (in Sekunden), für die der verfügbare Speicherplatz unter disk_low_space_level oder disk_low_space_percent (je nachdem, welcher Wert niedriger ist) bleiben kann, bevor Health Monitor die Modi SUPER_READ_ONLY und OFFLINE_MODE auf MySQL Server festlegt.
|
disk_low_space_level |
5.000 | Der Schwellenwert für niedrigen Speicherplatz für die Speicherreserve in MiB. Wenn der verfügbare Speicherplatz diesen Prozentsatz des insgesamt verfügbaren Speichers länger als den Wert von disk_low_space_duration entfernt, legt Health Monitor die Modi SUPER_READ_ONLY und OFFLINE_MODE auf MySQL Server fest.
|
disk_low_space_percent |
4 | Der Schwellenwert für den geringen Speicherplatz für die Speicherreserve in Prozent. Wenn der verfügbare Speicherplatz diesen Prozentsatz des insgesamt verfügbaren Speichers länger als den Wert von disk_low_space_duration entfernt, legt Health Monitor die Modi SUPER_READ_ONLY und OFFLINE_MODE auf MySQL Server fest.
|
disk_monitored |
/db | Der Mount Point für Datenträgerstatistiken. |
disk_retention |
86.400 |
Gibt an, wie viele Sekunden jedes Datenbeispiel in den Historientabellen für Datenträgernutzungsdaten aufbewahrt wird. Der Mindestwert beträgt 1 Sekunde, der Standardwert beträgt 86400 Sekunden (1 Tag) und der Höchstwert 864000 Sekunden (10 Tage). Wenn |
disk_recovery_enable |
EIN | Setzen Sie die Variable auf ON, um die Wiederherstellung nach einem anhaltenden oder erheblichen Mangel zu ermöglichen, und auf OFF, um die Wiederherstellung nach einem anhaltenden oder erheblichen Mangel zu deaktivieren. |
disk_recovery_level |
5% | Der Prozentsatz des gesamten Festplattenspeichers über der Speicherreserve.
|
disk_recovery_time_1 |
300 Sekunden | Die Zeit (in Sekunden), die der verfügbare Speicher über disk_recovery_level bleiben muss, bevor der Zustandsmonitor OFFLINE_MODE = OFF festlegt.
|
disk_recovery_time_2 |
300 Sekunden | Die zusätzliche Zeit (in Sekunden), die der verfügbare Speicher nach disk_recovery_time_1 über disk_recovery_level bleiben muss, bevor der Zustandsmonitor SUPER_READ_ONLY = OFF festlegt.
|
disk_recovery_max_cycles |
3 Zyklen | Die maximale Anzahl, wie oft der MySQL-Server innerhalb des disk_recovery_cycle_window-Zeitrahmens wieder in den normalen Betriebsmodus versetzt werden kann.
|
disk_recovery_window |
86400 Sekunden | Die Zeit (in Sekunden) nach dem letzten erfolgreichen Recovery-Zyklus, nach dem die Recovery-Anzahl zurückgesetzt wird. Der Wert 0 bedeutet, dass die Recovery-Anzahl nie zurückgesetzt wird. |
disk_recovery_increment |
300 Sekunden | Die Zeit (in Sekunden), um die Recovery-Timer disk_recovery_time_1 und disk_recovery_time_2 für jeden Recovery-Zyklus zu erhöhen.
|
disk_running |
EIN | Der aktive Status des Festplattenmonitors des Zustandsmonitors. |
disk_sample_rate |
60 | Die Häufigkeit der Datenträgerdatenerfassung in Sekunden. Standardmäßig werden Daten alle 60 Sekunden erfasst. Die minimale Stichprobenrate beträgt 1 (jede Sekunde) und die maximale beträgt 86400 (einmal täglich). |
disk_usage_warning_level_1 |
20 | Ein Prozentsatz des verfügbaren Speicherplatzes, der größer ist als disk_low_space_level. Wenn der verfügbare Speicherplatz unter diese Grenze fällt, wird die Warnung WARNING_DISK_USAGE_LEVEL_1 ausgelöst.
|
disk_usage_warning_level_2 |
10 | Ein Prozentsatz des verfügbaren Speicherplatzes, der größer ist als disk_low_space_level. Wenn der verfügbare Speicherplatz unter diese Grenze fällt, wird die Warnung WARNING_DISK_USAGE_LEVEL_2 ausgelöst.
|
disk_usage_warning_level_3 |
5 | Ein Prozentsatz des verfügbaren Speicherplatzes, der größer ist als disk_low_space_level. Wenn der verfügbare Speicherplatz unter diese Grenze fällt, wird die Warnung WARNING_DISK_USAGE_LEVEL_3 ausgelöst.
|
memory_reporting |
EIN | Ermöglicht die Erfassung von Speicherdaten. |
memory_retention |
86.400 |
Gibt an, für wie viele Sekunden jedes Datensample in den Historientabellen für Speicherauslastungsdaten aufbewahrt wird. Der Mindestwert beträgt 1 Sekunde, der Standardwert beträgt 86400 Sekunden (1 Tag) und der Höchstwert 864000 Sekunden (10 Tage). |
memory_running |
EIN | Der aktive Status des Zustandsmonitors. |
memory_sample_rate |
60 | Die Häufigkeit der Speicherdatenerfassung in Sekunden. Standardmäßig werden Daten alle 60 Sekunden erfasst. Die minimale Stichprobenrate beträgt 1 (jede Sekunde) und die maximale beträgt 86400 (einmal täglich). |
memory_usage_warning_level_1 |
1.024 | Eine verfügbare Speichermenge (MiB). Wenn der verfügbare Speicher unter diese Grenze fällt, wird die Warnung WARNING_MEMORY_USAGE_LEVEL_1 ausgelöst.
|
memory_usage_warning_level_2 |
500 | Eine verfügbare Speichermenge (MiB). Wenn der verfügbare Speicher unter diese Grenze fällt, wird die Warnung WARNING_MEMORY_USAGE_LEVEL_2 ausgelöst.
|
memory_usage_warning_level_3 |
100 | Eine verfügbare Speichermenge (MiB). Wenn der verfügbare Speicher unter diese Grenze fällt, wird die Warnung WARNING_MEMORY_USAGE_LEVEL_3 ausgelöst.
|
status_interval |
10 | Die Häufigkeit (als Vielfaches von disk_sample_rate), mit der Statusnachrichten an die Fehlerlogtabelle gesendet werden. Beispiel: Wenn status_interval = 10 und disk_sample_rate = 60 Sekunden, sendet der Zustandsmonitor alle 600 Sekunden eine Statusmeldung an die Fehlerlogtabelle.
|
system_cpu_stats_history |
EIN | Gibt an, ob Statistiken zur System-CPU-Auslastung erfasst und in der Performance-Schematabelle system_cpu_stats_history gespeichert werden. Wenn diese Statistiken nicht gespeichert sind, können Sie weiterhin nach Bedarf auf einen Snapshot zugreifen, indem Sie die Tabelle system_cpu_stats abfragen.
|
system_disk_stats_history |
EIN | Gibt an, ob Statistiken zur Systemdatenträgerauslastung erfasst und in der Performance-Schematabelle system_memory_stats_history gespeichert werden. Wenn diese Statistiken nicht gespeichert sind, können Sie weiterhin nach Bedarf auf einen Snapshot zugreifen, indem Sie die Tabelle system_memory_stats abfragen.
|
system_memory_stats_history |
EIN | Gibt an, ob Statistiken zur Systemspeicherauslastung erfasst und in der Performance-Schematabelle system_disk_stats_history gespeichert werden. Wenn diese Statistiken nicht gespeichert sind, können Sie weiterhin nach Bedarf auf einen Snapshot zugreifen, indem Sie die Tabelle system_disk_stats abfragen.
|
system_process_stats_history |
EIN | Gibt an, ob MySQL-Serverprozessstatistiken (mysqld) erfasst und in der Performance-Schematabelle system_process_stats_history gespeichert werden. Wenn diese Statistiken nicht gespeichert sind, können Sie weiterhin nach Bedarf auf einen Snapshot zugreifen, indem Sie die Tabelle system_process_stats abfragen.
|
system_retention |
86.400 |
Gibt an, wie viele Sekunden jedes Datensample in den Historientabellen für System- und Prozessstatistiken aufbewahrt wird. Der Mindestwert beträgt 1 Sekunde, der Standardwert beträgt 86400 Sekunden (1 Tag) und der Höchstwert 864000 Sekunden (10 Tage). |
system_running |
EIN | Gibt an, ob Systemstatistiken vom Health Monitor erfasst werden. Wenn dieser Wert auf ON gesetzt ist, sind die Statistiktabellen für System-CPU-Auslastung, Datenträgerauslastung, Speicherauslastung und den Serverprozess MySQL (mysqld) verfügbar, und die entsprechenden Historientabellen werden aufgefüllt, wenn ihre Systemvariablen auf ON gesetzt sind.
|
system_sample_rate |
60 | Die Häufigkeit der Erfassung von Systemstatistiken in Sekunden. Standardmäßig werden Daten alle 60 Sekunden erfasst. Die minimale Stichprobenrate beträgt 1 (jede Sekunde) und die maximale beträgt 86400 (einmal täglich). |
Meldungen des Zustandsmonitors
Die Fehler, Warnungen und Statusaktualisierungen des Zustandsmonitors werden in performance_schema.error_log protokolliert. Health Monitor reduziert TiB als T, GiB als G und MiB als M im Fehlerlog. Beispiel: 306.6G = 306.6 GiB = 329.2 GB.
Tabelle 17-12: Meldungen des Zustandsmonitors
| Nachrichtentyp | Beschreibung |
|---|---|
| Statusupdate | Der Zustandsmonitor gibt eine routinemäßige Statusaktualisierung entsprechend der durch sample_rate * status_interval definierten Anzahl von Sekunden aus. Beispiele: |
| Schwellenwertwarnung | Wenn der verfügbare Speicherplatz unter einen der von disk_usage_warning_level_* definierten Schwellenwerte fällt, gibt der Zustandsmonitor eine Warnung aus. Das folgende Beispiel zeigt die Warnung für disk_usage_warning_level_2, definiert als 4 % des Gesamtspeichers über dem Grenzwert für knappen Speicherplatz: |
disk_low_space_duration-Warnung
|
Wenn der verfügbare Festplattenspeicher unter den Grenzwert von 18 GiB fällt, startet der Zustandsmonitor den Fallback-Timer und gibt eine Warnung aus. Beispiele: |
OFFLINE/SUPER_READ_ONLY-Moduswarnung
|
Wenn der verfügbare Datenträgerspeicherplatz länger als disk_low_space_duration Sekunden unter dem Grenzwert für niedrigen Speicherplatz bleibt, fügt der Zustandsmonitor den Server in SUPER_READ_ONLY und OFFLINE_MODE ein. Beispiele:Siehe Problem SUPER_READ_ONLY und OFFLINE_MODE lösen, das durch geringen freien Speicherplatz verursacht wird.
|
| Kritische Warnung | Wenn der verfügbare Speicherplatz für eine beliebige Zeit unter disk_low_space_critical_level fällt, wird der Server vom Zustandsmonitor in den Modus SUPER_READ_ONLY versetzt. Beispiele: |
| Warnung wegen abgebrochenem Timer | Wenn der verfügbare Speicher über den Grenzwert für knappen Speicherplatz ansteigt, bevor disk_low_space_duration Sekunden abgelaufen sind, wird der Fallback-Modus-Timer abgebrochen. Der Zustandsmonitor gibt zudem entweder eine Statusmeldung oder eine Warnmeldung aus, wenn der verfügbare Speicherplatz noch im Warnbereich liegt. Beispiele:[Warning] [MY-013695] [Health] Disk: Low Level (18M): Fallback Timer Canceled [Warning] [MY-013695] [Health] Disk: Warning Level 1 (107M): monitored='/db', available=79M, total=466M, used=82.9%, low limit=18M, critical=10M, recovery=40M, warnings=107M/62M/40M |
| Speicherwarnung | Wenn der verfügbare Speicher unter einen der von memory_usage_warning_level_* definierten Schwellenwerte fällt, gibt der Zustandsmonitor eine Warnung aus, die die Speicherdiagnosedetails in durch Komma getrennten Werten (CSV) enthält. Die CSV-Daten im folgenden Beispiel wurden aufgrund von Speicherplatzbeschränkungen entfernt. [Warning] [MY-013695] [Health] MEMORY: WARNING LEVEL 1 (1.0G): available=950M, total=7.5G, used=87.6%, mysqld=5.9G, warnings=1.0G/500M/100M [Warning] [MY-013695] [Health] [Warning] [MY-013695] [Health] ===== MEMORY DIAGNOSTICS BEGIN (csv) ===== --------------------------------------- TOTAL ALLOCATED MEMORY AND BUFFER SIZES --------------------------------------- keyword,value mysql_version,8.0.33 total_allocated,15121493496 innodb_buffer_pool_size,13958643712 join_buffer_size,262144 ---------------------------------------- MEMORY AGGREGATION PER LOGICAL COMPONENT ---------------------------------------- component,current_count,current_alloc,max_alloc,min_alloc ...<csv data>... ----------------------- MEMORY USAGE PER THREAD ----------------------- thread_id,user,current_count_used,current_allocated,current_avg_alloc,current_max_alloc,total_allocated ...<csv data>... ----------------------- MEMORY USAGE PER USER ----------------------- user,current_count_used,current_allocated,current_avg_alloc,current_max_alloc,total_allocated ...<csv data>... ------------------- PROCESSLIST DETAILS ------------------- thd_id,conn_id,user,db,command,state,time,current_statement,execution_engine,statement_latency,progress, lock_latency,cpu_latency,rows_examined,rows_sent,rows_affected,tmp_tables,tmp_disk_tables,full_scan, last_statement,last_statement_latency,current_memory,last_wait,last_wait_latency,source,trx_latency, trx_state,trx_autocommit,pid,program_name ...<csv data>... --------------- SESSION DETAILS --------------- thd_id,conn_id,user,db,command,state,time,current_statement,execution_engine,statement_latency,progress, lock_latency,cpu_latency,rows_examined,rows_sent,rows_affected,tmp_tables,tmp_disk_tables,full_scan, last_statement,last_statement_latency,current_memory,last_wait,last_wait_latency,source,trx_latency, trx_state,trx_autocommit,pid,program_name ...<csv data>... -------------------------------------------------------- CURRENT STATEMENT PER THREAD ORDERED BY STATEMENT MEMORY -------------------------------------------------------- THREAD_ID,EVENT_ID,END_EVENT_ID,EVENT_NAME,SOURCE,TIMER_START,TIMER_END,TIMER_WAIT,LOCK_TIME,SQL_TEXT, DIGEST,DIGEST_TEXT,CURRENT_SCHEMA,OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME,OBJECT_INSTANCE_BEGIN,MYSQL_ERRNO, RETURNED_SQLSTATE,MESSAGE_TEXT,ERRORS,WARNINGS,ROWS_AFFECTED,ROWS_SENT,ROWS_EXAMINED,CREATED_TMP_DISK_TABLES, CREATED_TMP_TABLES,SELECT_FULL_JOIN,SELECT_FULL_RANGE_JOIN,SELECT_RANGE,SELECT_RANGE_CHECK,SELECT_SCAN, SORT_MERGE_PASSES,SORT_RANGE,SORT_ROWS,SORT_SCAN,NO_INDEX_USED,NO_GOOD_INDEX_USED,NESTING_EVENT_ID, NESTING_EVENT_TYPE,NESTING_EVENT_LEVEL,STATEMENT_ID,CPU_TIME,MAX_CONTROLLED_MEMORY,MAX_TOTAL_MEMORY, EXECUTION_ENGINE ...<csv data>... ---------------------------------------------------------- CURRENT STATEMENT PER THREAD FOR THREADS USING MOST MEMORY ---------------------------------------------------------- THREAD_ID,EVENT_ID,END_EVENT_ID,EVENT_NAME,SOURCE,TIMER_START,TIMER_END,TIMER_WAIT,LOCK_TIME,SQL_TEXT, DIGEST,DIGEST_TEXT,CURRENT_SCHEMA,OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME,OBJECT_INSTANCE_BEGIN,MYSQL_ERRNO, RETURNED_SQLSTATE,MESSAGE_TEXT,ERRORS,WARNINGS,ROWS_AFFECTED,ROWS_SENT,ROWS_EXAMINED,CREATED_TMP_DISK_TABLES, CREATED_TMP_TABLES,SELECT_FULL_JOIN,SELECT_FULL_RANGE_JOIN,SELECT_RANGE,SELECT_RANGE_CHECK,SELECT_SCAN, SORT_MERGE_PASSES,SORT_RANGE,SORT_ROWS,SORT_SCAN,NO_INDEX_USED,NO_GOOD_INDEX_USED,NESTING_EVENT_ID, NESTING_EVENT_TYPE,NESTING_EVENT_LEVEL,STATEMENT_ID,CPU_TIME,MAX_CONTROLLED_MEMORY,MAX_TOTAL_MEMORY, EXECUTION_ENGINE,thread_id ...<csv data>... ---------------------------------------------------------- STATEMENT HISTORY PER THREAD FOR THREADS USING MOST MEMORY ---------------------------------------------------------- THREAD_ID,EVENT_ID,END_EVENT_ID,EVENT_NAME,SOURCE,TIMER_START,TIMER_END,TIMER_WAIT,LOCK_TIME,SQL_TEXT, DIGEST,DIGEST_TEXT,CURRENT_SCHEMA,OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME,OBJECT_INSTANCE_BEGIN,MYSQL_ERRNO, RETURNED_SQLSTATE,MESSAGE_TEXT,ERRORS,WARNINGS,ROWS_AFFECTED,ROWS_SENT,ROWS_EXAMINED,CREATED_TMP_DISK_TABLES, CREATED_TMP_TABLES,SELECT_FULL_JOIN,SELECT_FULL_RANGE_JOIN,SELECT_RANGE,SELECT_RANGE_CHECK,SELECT_SCAN, SORT_MERGE_PASSES,SORT_RANGE,SORT_ROWS,SORT_SCAN,NO_INDEX_USED,NO_GOOD_INDEX_USED,NESTING_EVENT_ID, NESTING_EVENT_TYPE,NESTING_EVENT_LEVEL,STATEMENT_ID,CPU_TIME,MAX_CONTROLLED_MEMORY,MAX_TOTAL_MEMORY, EXECUTION_ENGINE,thread_id ...<csv data>... ----------------------------- EVENTS ALLOCATING MOST MEMORY ----------------------------- processlist_id,processlist_user,thread_id,event_name,count_alloc,count_free,current_count_used, current_number_of_bytes_used ...<csv data>... ---------------------- BUFFER POOL STATISTICS ---------------------- POOL_ID,POOL_SIZE,FREE_BUFFERS,DATABASE_PAGES,OLD_DATABASE_PAGES,MODIFIED_DATABASE_PAGES,PENDING_DECOMPRESS, PENDING_READS,PENDING_FLUSH_LRU,PENDING_FLUSH_LIST,PAGES_MADE_YOUNG,PAGES_NOT_MADE_YOUNG,PAGES_MADE_YOUNG_RATE, PAGES_MADE_NOT_YOUNG_RATE,NUMBER_PAGES_READ,NUMBER_PAGES_CREATED,NUMBER_PAGES_WRITTEN,PAGES_READ_RATE, PAGES_CREATE_RATE,PAGES_WRITTEN_RATE,NUMBER_PAGES_GET,HIT_RATE,YOUNG_MAKE_PER_THOUSAND_GETS, NOT_YOUNG_MAKE_PER_THOUSAND_GETS,NUMBER_PAGES_READ_AHEAD,NUMBER_READ_AHEAD_EVICTED,READ_AHEAD_RATE, READ_AHEAD_EVICTED_RATE,LRU_IO_TOTAL,LRU_IO_CURRENT,UNCOMPRESS_TOTAL,UNCOMPRESS_CURRENT ...<csv data>... |
Verwandte Themen