Health Monitor
Health Monitor raccoglie le statistiche relative all'uso della CPU del sistema, all'uso del disco, all'uso della memoria e al processo del server MySQL (mysqld
). Le statistiche vengono registrate nelle tabelle della cronologia, per le quali Health Monitor preleva i campioni una volta al minuto e conserva i dati di un giorno. È inoltre possibile accedere a queste statistiche in tabelle popolate con letture correnti su richiesta quando si esegue una query.
Panoramica di Health Monitor
Health Monitor analizza informazioni sullo spazio su disco, informazioni sulla memoria di sistema ed elabora le informazioni sulla memoria ogni sessanta secondi e memorizza i dati di un giorno in tabelle nello schema delle prestazioni di MySQL Server. Se lo spazio su disco disponibile o la memoria disponibile è inferiore a determinate soglie preimpostate, Health Monitor emette avvisi e lo registra nella tabella performance_schema.error_log
.
Health Monitor utilizza unità di storage MiB/GiB/TiB dove 100 GB = 93 GiB.
Lo storage totale disponibile per un sistema DB contiene gli elementi riportati di seguito.
- Storage disponibile: lo spazio su disco dopo la riserva di storage viene escluso dallo storage totale.
- Storage reserve: spazio su disco inferiore alle variabili di configurazione
disk_low_space_level
edisk_low_space_percent
. Il valore predefinito didisk_low_space_level
è 5.000 MiB e il valore predefinito didisk_low_space_percent
è il 4% dello storage totale. - Storage critico: lo spazio su disco nella memoria viene riservato al di sotto della soglia critica, definita dalla variabile di configurazione
disk_low_space_critical_level
. Si tratta dello spazio su disco minimo utilizzabile dal sistema per evitare l'esaurimento del disco. Lo spazio di memorizzazione critico predefinito è 2.000 MiB.
Avvertenze spazio su disco
Quando lo spazio su disco è inferiore a una determinata percentuale dello storage disponibile, Health Monitor emette le seguenti avvertenze e le registra nella tabella performance_schema.error_log
:
WARNING_DISK_USAGE_LEVEL_1
: quando lo spazio su disco è inferiore al 20% dello spazio di memorizzazione disponibile.WARNING_DISK_USAGE_LEVEL_2
: quando lo spazio su disco è inferiore al 10% dello spazio di memorizzazione disponibile.WARNING_DISK_USAGE_LEVEL_3
: quando lo spazio su disco è inferiore al 5% dello storage disponibile.
Ad esempio, se lo storage totale è 100.000 MiB e la riserva di storage è minore delle due variabili di configurazione riportate di seguito.
disk_low_space_level
: il valore predefinito è 5.000 MiB.disk_low_space_percent
: rappresenta il 4% dello storage totale, ovvero il 4% di 100.000 MiB = 4.000 MiB.
La riserva di memorizzazione è 4.000 MiB, che è inferiore alle due variabili di configurazione.
È possibile trovare lo stoccaggio disponibile escludendo la riserva di stoccaggio dal deposito totale:
100,000 - 4,000 = 96,000 MiB
Health Monitor genera le seguenti avvertenze:
WARNING_DISK_USAGE_LEVEL_1
: quando lo spazio su disco è inferiore al 20% dello spazio di memorizzazione disponibile, ovvero 20/100*96.000 = 19.200 MiB.WARNING_DISK_USAGE_LEVEL_2
: quando lo spazio su disco è inferiore al 10% dello storage disponibile, ovvero 10/100*96.000 = 9.600 MiB.WARNING_DISK_USAGE_LEVEL_3
: quando lo spazio su disco è inferiore al 5% dello storage disponibile, ovvero 5/100*96.000 = 4.800 MiB.
Carenza significativa o prolungata di spazio su disco
Health Monitor definisce una carenza significativa o prolungata di spazio su disco quando vengono soddisfatte le seguenti condizioni:
- Carenza significativa: lo spazio su disco scende al di sotto della soglia critica definita da
disk_low_space_critical_level
. - Carenza sostenuta: lo spazio su disco scende al di sotto della riserva di storage, quindi rimane nella riserva di storage per la durata definita dalla variabile di configurazione
disk_low_space_duration
.
In caso di carenza significativa o prolungata di spazio su disco, Health Monitor esegue le operazioni riportate di seguito.
SUPER_READ_ONLY=ON
: imposta le variabili di sistema,SUPER_READ_ONLY
, su ON in MySQL Server. MySQL Server rifiuta tutte le nuove istruzioni di scrittura SQL in entrata (UPDATE
,INSERT
,DELETE
eDDL
), indipendentemente dagli utenti e dai privilegi. Il completamento delle transazioni in esecuzione è consentito, ma le nuove scritture sono vietate fino a quando lo spazio su disco non sarà nuovamente disponibile. Non è possibile caricare i dati nel cluster HeatWave quando il server è in modalitàSUPER_READ_ONLY
.In alcuni casi, i lock di lettura globali, i commit in corso o i lock dei metadati impediscono a Health Monitor di impostare la variabile di sistema
SUPER_READ_ONLY
. In questi casi, se si imposta la variabilehealth_monitor.disk_fallback_force
, Health Monitor identifica e termina le query attive che contengono blocchi globali per impostare la variabile di sistemaSUPER_READ_ONLY
.OFFLINE_MODE=ON
: imposta la variabile di sistema,OFFLINE_MODE
, su ON in MySQL Server. MySQL Server disconnette gli utenti client che non dispongono del privilegioCONNECTION_ADMIN
, arresta le istruzioni in esecuzione e rilascia i blocchi e blocca le nuove connessioni con un errore appropriato.super_read_only_disk_full=ON
: imposta la variabile di stato,super_read_only_disk_full
, su ON per indicare che la modalità di sola lettura è stata attivata a causa dello spazio su disco ridotto. È possibile vedere il valore della variabile di statosuper_read_only_disk_full
con uno dei comandi seguenti: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';
Le variabili di sistema cambiano il comportamento di MySQL Server, mentre le variabili di stato sono indicatori statici dello stato di MySQL Server.
Ripristino al funzionamento normale
Una volta impostati i valori SUPER_READ_ONLY
e OFFLINE_MODE
, Health Monitor esegue le operazioni riportate di seguito.
- Controllare lo spazio su disco ogni minuto .
- Impostare
OFFLINE_MODE=OFF
se lo spazio su disco disponibile viene recuperato e rimane sopradisk_recovery_level
perdisk_recovery_time_1
secondi o più. - Impostare
SUPER_READ_ONLY=OFF
se lo spazio su disco disponibile viene recuperato e rimane sopradisk_recovery_level
per altridisk_recovery_time_2
secondi o più.
Le operazioni normali vengono riprese una volta che lo spazio su disco rimane superiore a disk_recovery_level
per disk_recovery_time_1
+ disk_recovery_time_2
secondi.
Una volta recuperato lo spazio su disco, Health Monitor cancella le variabili di sistema, SUPER_READ_ONLY
e OFFLINE_MODE
e la variabile di stato, super_read_only_disk_full
. Non è necessario riavviare l'istanza MySQL per cancellare le variabili.
Se si verifica di nuovo una carenza significativa o prolungata di spazio su disco, Health Monitor imposta di nuovo le variabili di sistema SUPER_READ_ONLY
e OFFLINE_MODE
e la variabile di stato super_read_only_disk_full
su ON in MySQL Server.
Prima di riportare un'istanza primaria di un sistema DB High Availability alla modalità operativa normale, Health Monitor verifica che il server sia online con la maggioranza dei gruppi. Health Monitor non imposta mai SUPER_READ_ONLY
o OFFLINE_MODE
sulle istanze secondarie.
Incremento recupero, ciclo massimo recupero e finestra di recupero
Ogni volta che MySQL Server recupera da una significativa o prolungata carenza di spazio su disco, Health Monitor aumenta il tempo di recupero del disco di disk_recovery_increment
secondi.
Ad esempio, se disk_recovery_time_1
= 300 secondi e disk_recovery_time_2
= 600 secondi e disk_recovery_increment
= 400 secondi, il tempo di recupero del disco per ogni ciclo è il seguente:
- Ciclo 1:
disk_recovery_time_1
= 300 secondi,disk_recovery_time_2
= 600 secondi - Ciclo 2:
disk_recovery_time_1
= (300 + 400) secondi,disk_recovery_time_2
= (600 + 400) secondi - Ciclo 3:
disk_recovery_time_1
= (300+400+400) secondi,disk_recovery_time_2
= (600+400+400) secondi
Health Monitor ripristina alla modalità operativa normale un massimo di disk_recovery_max_cycles
volte entro una finestra fissa di disk_recovery_window
secondi, dall'ultimo ciclo di recupero. Ad esempio, se disk_recovery_max_cycles
è impostato su 5 e disk_recovery_window
è impostato su 86.400 secondi (1 giorno), Health Monitor può ripristinare la normale modalità operativa cinque volte in una finestra di 86.400 secondi. Se si verifica una carenza significativa o prolungata la sesta volta nella stessa finestra, le variabili di sistema SUPER_READ_ONLY
e OFFLINE_MODE
vengono impostate su ON.
Il conteggio di recupero viene reimpostato dopo disk_recovery_window
secondi dall'ultimo recupero.
Avvertenze memoria
Quando la memoria disponibile è inferiore a determinate soglie, Health Monitor genera le seguenti avvertenze:
WARNING_MEMORY_USAGE_LEVEL_1
: se la memoria disponibile è inferiore a 1024, MiB.WARNING_MEMORY_USAGE_LEVEL_2
: quando la memoria disponibile è inferiore a 500 MiB.WARNING_MEMORY_USAGE_LEVEL_3
: quando la memoria disponibile è inferiore a 100 MiB.
Health Monitor registra le informazioni relative alla versione MySQL, all'uso della memoria globale e a varie impostazioni di configurazione nel log degli errori. Le informazioni vengono registrate come valori separati da virgole per un facile trasferimento in un foglio di calcolo per ulteriori analisi.
Visualizzazione delle tabelle di monitoraggio dello stato
Le tabelle Health Monitor memorizzano i dati e le statistiche di monitoraggio nello schema delle prestazioni di MySQL Server.
Le tabelle di integrità contengono informazioni sull'archiviazione su disco, sulla memoria di sistema e sulla memoria di processo.
Le tabelle statistiche contengono statistiche sull'uso della CPU del sistema, sull'uso del disco, sull'uso della memoria e sul processo del server MySQL (mysqld
). Ogni tabella delle statistiche ha due versioni, una versione su richiesta, che viene popolata con letture correnti quando si esegue la query e una versione della cronologia per la quale Health Monitor preleva campioni una volta al minuto e conserva un valore giornaliero di dati. Entrambe le versioni della tabella hanno le stesse colonne.
Uso di un client dalla riga di comando
Utilizzare un client della riga di comando, ad esempio il client MySQL o la shell MySQL, per visualizzare le tabelle di Health Monitor.
- Client dalla riga di comando, come la shell MySQL, connesso al sistema DB. Vedere Connessione a un sistema DB.
+-------------------------+---------------------+-------------+-----------------+-------------+-------------+
| 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 |
Tabelle Health Monitor
Fare riferimento alle tabelle Health Monitor per visualizzare le informazioni sull'archiviazione su disco, le informazioni sulla memoria di sistema e le informazioni sulla memoria di processo.
L'elenco completo delle tabelle Health Monitor è il seguente:
performance_schema.health_block_device
: informazioni sullo stato di memorizzazione su disco.performance_schema.health_system_memory
: informazioni sullo stato della memoria di sistema.performance_schema.health_process_memory
: elabora le informazioni sullo stato della memoria.performance_schema.system_cpu_stats
: statistiche sull'uso della CPU, popolate su richiesta.performance_schema.system_cpu_stats_history
: statistiche d'uso CPU memorizzate.performance_schema.system_disk_stats
: statistiche sull'uso del disco, popolate su richiesta.performance_schema.system_disk_stats_history
: statistiche sull'uso del disco memorizzate.performance_schema.system_memory_stats
: statistiche sull'uso della memoria, popolate su richiesta.performance_schema.system_memory_stats_history
: statistiche sull'uso della memoria memorizzata.performance_schema.system_process_stats
: statistiche di processo e thread, popolate su richiesta.performance_schema.system_process_stats_history
: statistiche di processo e thread memorizzate.performance_schema.error_log
: avvisi ed errori. Vedere Visualizzazione del log degli errori.
Tabella performance_schema.health_block_device
Health Monitor utilizza la tabella performance_schema.health_block_device
nello schema delle prestazioni di MySQL Server per memorizzare i dati sullo spazio su disco utilizzato e disponibile in un sistema DB.
Tabella 17-1 Tabella dello schema delle prestazioni health_block_device
Colonna | descrizione; |
---|---|
DEVICE |
Nome di dispositivo del disco. |
TIMESTAMP |
Ora di raccolta del campione di dati in questa riga. |
TOTAL_BYTES |
La quantità totale di storage sul dispositivo, in byte. |
AVAILABLE_BYTES |
Quantità di storage disponibile sul dispositivo, in byte. |
USE_PERCENT |
Percentuale di spazio su disco in uso. |
MOUNT_POINT |
Il mount point del dispositivo. |
Tabella performance_schema.health_system_memory
Health Monitor utilizza la tabella performance_schema.health_system_memory
nello schema delle prestazioni di MySQL Server per memorizzare i dati sull'uso della memoria da parte del sistema DB
Tabella 17-2 Tabella dello schema delle prestazioni health_system_memory
Colonna | descrizione; |
---|---|
TIMESTAMP |
Ora di raccolta del campione di dati in questa riga. |
TOTAL_MEMORY |
La quantità totale di memoria per il sistema, in byte. |
AVAILABLE |
La memoria disponibile per l'avvio di nuove applicazioni senza swap, in byte. |
USE_PERCENT |
Percentuale di memoria in uso. |
MEMORY_FREE |
Quantità di memoria inutilizzata. |
MEMORY_FS_CACHE |
Cache delle pagine del file system. |
SWAP_TOTAL |
La quantità totale della memoria di swap. |
SWAP_FREE |
Quantità totale della memoria di swap libera. |
Tabella performance_schema.health_process_memory
Health Monitor utilizza la tabella performance_schema.health_process_memory
nello schema delle prestazioni di MySQL Server per memorizzare i dati sull'uso della memoria da parte del processo MySQL Server (mysqld) nel sistema DB.
Tabella 17-3 Tabella dello schema delle prestazioni health_process_memory
Colonna | descrizione; |
---|---|
TIMESTAMP |
Ora di raccolta del campione di dati in questa riga. |
PROCESS_NAME |
Il nome del processo MySQL Server. |
PID |
Identificativo di sistema per il processo MySQL Server. |
VM_RSS |
La dimensione del set residente del processo del server MySQL, in byte. |
VM_DATA |
La dimensione del segmento dati del processo MySQL Server, in byte. |
VM_SWAP |
La dimensione del segmento di swap del processo del server MySQL, in byte. |
PAGE_FAULTS |
Numero di errori di pagina che richiedono l'I/O del disco. |
Tabella performance_schema.system_cpu_stats
Health Monitor raccoglie le statistiche sull'uso della CPU da parte del sistema DB. Le statistiche sono disponibili in due tabelle nello schema delle prestazioni di MySQL Server, in una tabella su richiesta e in una tabella della cronologia corrispondente. Entrambe le tabelle hanno le stesse colonne.
La tabella performance_schema.system_cpu_stats
nello schema delle prestazioni di MySQL Server viene popolata con un esempio di dati quando si esegue una query. La tabella performance_schema.system_cpu_stats_history
memorizza regolarmente i campioni di dati.
Le statistiche in queste tabelle provengono dal file di sistema Linux /proc/stat
.
Tabella 17-4 Tabelle dello schema delle prestazioni system_cpu_stats e system_cpu_stats_history
Colonna | descrizione; |
---|---|
TIMESTAMP |
Ora di raccolta del campione di dati in questa riga. |
CPU |
La riga della CPU mostra i dati di utilizzo aggregati della CPU e ogni riga numerata (ad esempio, cpu0, cpu1) mostra i dati per un singolo processo. Tutti gli orari sono in millisecondi. |
USER_MS |
Tempo impiegato in modalità utente. |
NICE_MS |
Tempo trascorso in modalità utente con priorità bassa. |
SYSTEM_MS |
Tempo impiegato in modalità sistema. |
IDLE_MS |
Il tempo impiegato nel task inattivo. |
IOWAIT_MS |
Tempo impiegato per il completamento dell'operazione di I/O. |
IRQ_MS |
Il tempo impiegato per la manutenzione dell'hardware interrompe. |
SOFTIRQ_MS |
Il tempo impiegato per la manutenzione del software interrompe. |
STEAL_MS |
Tempo impiegato per l'esecuzione di altri sistemi operativi in un ambiente virtualizzato. |
GUEST_MS |
Tempo impiegato per eseguire una CPU virtuale con priorità normale. |
GUEST_NICE_MS |
Tempo impiegato per eseguire una CPU virtuale con priorità bassa. |
Tabella performance_schema.system_disk_stats
Health Monitor raccoglie le statistiche sull'uso del disco da parte del sistema DB. Le statistiche sono disponibili in due tabelle nello schema delle prestazioni di MySQL Server, in una tabella su richiesta e in una tabella della cronologia corrispondente. Entrambe le tabelle hanno le stesse colonne.
La tabella performance_schema.system_disk_stats
nello schema delle prestazioni di MySQL Server viene popolata con un esempio di dati quando si esegue una query. La tabella performance_schema.system_disk_stats_history
memorizza regolarmente i campioni di dati.
Le statistiche in queste tabelle provengono dal file di sistema Linux /proc/diskstats
.
Tabella 17-5 Tabelle dello schema delle prestazioni system_disk_stats e system_disk_stats_history
Colonna | descrizione; |
---|---|
TIMESTAMP |
Ora di raccolta del campione di dati in questa riga. |
DEVICE |
Il nome del dispositivo per questo disco. |
READS |
Numero di letture completate. |
READ_BYTES |
Il numero di byte letti. |
READ_TIME_MS |
Tempo di lettura, in millisecondi. |
WRITES |
Numero di scritture completate. |
WRITE_BYTES |
Il numero di byte scritti. |
WRITE_TIME_MS |
Il tempo trascorso a scrivere, in millisecondi. |
FLUSHES |
Il numero di richieste di svuotamento è stato completato correttamente. |
FLUSH_TIME_MS |
Tempo di svuotamento, in millisecondi. |
Tabella performance_schema.system_memory_stats
Health Monitor raccoglie le statistiche sull'uso della memoria da parte del sistema DB. Le statistiche sono disponibili in due tabelle nello schema delle prestazioni di MySQL Server, in una tabella su richiesta e in una tabella della cronologia corrispondente. Entrambe le tabelle hanno le stesse colonne.
La tabella performance_schema.system_memory_stats
nello schema delle prestazioni di MySQL Server viene popolata con un esempio di dati quando si esegue una query. La tabella performance_schema.system_memory_stats_history
memorizza regolarmente i campioni di dati.
Le statistiche in queste tabelle provengono dal file di sistema Linux /proc/meminfo
.
Tabella 17-6 Tabelle dello schema delle prestazioni system_memory_stats e system_memory_stats_history
Colonna | descrizione; |
---|---|
TIMESTAMP |
Ora di raccolta del campione di dati in questa riga. |
TOTAL_BYTES |
La memoria di sistema utilizzabile totale, in byte. |
FREE_BYTES |
La memoria inutilizzata. |
USED_BYTES |
La memoria totale utilizzata. |
AVAILABLE_BYTES |
La memoria stimata disponibile per l'avvio di nuove applicazioni, in byte. |
BUFFER_BYTES |
Quantità di memoria utilizzata per la memorizzazione temporanea per i blocchi del disco raw. |
CACHED_BYTES |
La quantità di memoria utilizzata per inserire nella cache i file letti dal disco (cache delle pagine). |
SLAB_BYTES |
Quantità di memoria utilizzata per inserire nella cache le strutture di dati nel kernel. |
SWAP_TOTAL_BYTES |
Quantità totale dello spazio di swap disponibile sul disco. |
SWAP_FREE_BYTES |
La quantità totale di spazio di swap attualmente non utilizzato. |
SWAP_USED_BYTES |
Quantità totale di memoria scambiata dalla RAM e temporaneamente su disco. |
SWAP_IN |
La quantità di memoria scambiata nella RAM dal disco, in KB al secondo. |
SWAP_OUT |
La quantità di memoria scambiata su disco dalla RAM, in KB al secondo. |
Tabella performance_schema.system_process_stats
Health Monitor raccoglie le statistiche per ogni thread utilizzato dal processo MySQL Server nel sistema DB. Le statistiche sono disponibili in due tabelle nello schema delle prestazioni di MySQL Server, in una tabella su richiesta e in una tabella della cronologia corrispondente. Entrambe le tabelle hanno le stesse colonne.
La tabella performance_schema.system_process_stats
nello schema delle prestazioni di MySQL Server viene popolata con un esempio di dati quando si esegue una query. La tabella performance_schema.system_process_stats_history
memorizza regolarmente i campioni di dati.
Per le statistiche dei processi, la tabella su richiesta restituisce una riga per ogni thread utilizzato dal processo mysqld
. Tuttavia, la tabella della cronologia memorizza una singola riga per ogni campione, con i totali aggregati per tutti i thread utilizzati dal processo mysqld
.
Le statistiche in queste tabelle provengono dal file di sistema Linux /proc/self/task/[pid]/stat
.
Tabella 17-7 Tabelle dello schema delle prestazioni system_process_stats e system_process_stats_history
Colonna | descrizione; |
---|---|
TIMESTAMP |
Ora di raccolta del campione di dati in questa riga. |
PID |
L'ID del processo. |
PROCESS_NAME |
Il nome del processo, ovvero mysqld .
|
TID |
ID thread per il singolo thread visualizzato in questa riga. |
THREAD_NAME |
Nome del thread con strumentazione per il singolo thread visualizzato in questa riga. |
STATE |
Carattere che mostra lo stato del thread al momento dell'esempio: esecuzione (R ), sospensione in un'attesa interrompibile (S ), attesa in una sospensione del disco non interrompibile (D ), thread zombie (Z ), arresto su un segnale o traccia interrotta (T ), paging (W ), dead (X ), wakekill (K ), waking (W ) o parcheggiato (P ).
|
UTIME_MS |
Tempo trascorso da questo thread in modalità utente, in millisecondi. |
STIME_MS |
Tempo trascorso da questo thread in modalità kernel, in millisecondi. |
CUTIME_MS |
Tempo impiegato dai processi figlio di questo processo in modalità utente, in millisecondi. |
CSTIME_MS |
Tempo trascorso dai processi figlio di questo processo in modalità kernel, in millisecondi. |
NUM_THREADS |
Il monarca dei fili in questo processo. |
VSIZE_BYTES |
La dimensione della memoria virtuale in byte. |
RSS_BYTES |
Il numero di byte che il processo ha in memoria reale (la dimensione del set residente). |
RSSLIM_BYTES |
Il limite in byte sulla dimensione del set residente del processo. |
PROCESSOR |
Numero CPU su cui è stato eseguito l'ultima volta il thread. |
DELAYACCT_BLKIO_MS |
Ritardi di I/O del blocco aggregato, in millisecondi. |
GUEST_TIME_MS |
Tempo guest per il processo, in millisecondi. |
CGUEST_TIME_MS |
Tempo guest per i processi figlio del processo, in millisecondi. |
READ_BYTES |
Il numero di byte recuperati da questo processo dal livello di storage. |
WRITE_BYTES |
Il numero di byte inviati da questo processo al livello di storage. |
Visualizzazione delle variabili di monitoraggio dello stato
Le variabili Health Monitor sono impostazioni di configurazione per l'attività di monitoraggio nel sistema DB. Non è possibile modificare i valori di queste variabili.
Uso di un client dalla riga di comando
Utilizzare un client della riga di comando, ad esempio un client MySQL o una shell MySQL, per visualizzare le variabili Health Monitor e i relativi valori.
- Sistema DB in esecuzione.
- Client della riga di comando, come il client MySQL o la shell MySQL, connesso al sistema DB. Vedere Connessione a un sistema DB.
+----------------------------------------------+-------+
| 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)
Variabili Health Monitor
Tutte le variabili di sistema Health Monitor sono precedute dal prefisso health_monitor
. Non è possibile modificare i valori delle variabili dai relativi valori predefiniti in un sistema DB.
Il prefisso
health_monitor.
viene omesso dalla tabella riportata di seguito. Ad esempio, disk_fallback_enable
è in realtà health_monitor.disk_fallback_enable
.
Tabella 17-8 Variabili di sistema di Health Monitor
Variabile di sistema | Valore predefinito | descrizione; |
---|---|---|
disk_fallback_enable |
ON | Se si verifica una carenza significativa o prolungata di spazio su disco, Health Monitor imposta la variabile di sistema SUPER_READ_ONLY e OFFLINE_MODE su ON in MySQL Server.
|
disk_fallback_force |
Non attivo | Arrestare le query in primo piano che contengono blocchi di metadati globali e riprovare impostando SUPER_READ_ONLY .
|
disk_low_space_critical_level |
2.000 | Soglia minima critica di spazio su disco in MiB. Se lo spazio su disco disponibile è inferiore a questo valore per qualsiasi durata, Health Monitor imposta le modalità SUPER_READ_ONLY e OFFLINE_MODE su MySQL Server.
|
disk_low_space_duration |
300 | Durata (in secondi) per la quale lo spazio su disco disponibile può rimanere al di sotto di disk_low_space_level o disk_low_space_percent (a seconda di quale dei due valori è inferiore) prima che Health Monitor imposti le modalità SUPER_READ_ONLY e OFFLINE_MODE su MySQL Server.
|
disk_low_space_level |
5.000 | La soglia di spazio bassa per la riserva di storage, in MiB. Se lo spazio su disco disponibile scende al di sotto di questa percentuale dello storage totale disponibile per un periodo di tempo superiore al valore disk_low_space_duration , Health Monitor imposta le modalità SUPER_READ_ONLY e OFFLINE_MODE su MySQL Server.
|
disk_low_space_percent |
4 | La soglia minima di spazio per la riserva di stoccaggio, espressa in percentuale. Se lo spazio su disco disponibile scende al di sotto di questa percentuale dello storage totale disponibile per un periodo di tempo superiore al valore disk_low_space_duration , Health Monitor imposta le modalità SUPER_READ_ONLY e OFFLINE_MODE su MySQL Server.
|
disk_monitored |
/db | Il punto di attivazione per le statistiche del disco. |
disk_retention |
86.400 |
Per quanti secondi viene conservato ogni campione di dati nelle tabelle della cronologia per i dati di utilizzo del disco. Il valore minimo è 1 secondo, l'impostazione predefinita è 86400 secondi (1 giorno) e il valore massimo è 864000 secondi (10 giorni). Se |
disk_recovery_enable |
ON | Impostare la variabile su ON per abilitare il recupero da una carenza sostenuta o significativa e su OFF per disabilitare il recupero da una carenza sostenuta o significativa. |
disk_recovery_level |
5% | Percentuale di spazio su disco totale superiore alla riserva di storage.
|
disk_recovery_time_1 |
300 secondi | Il periodo di tempo, in secondi, durante il quale lo storage disponibile deve rimanere al di sopra di disk_recovery_level prima che Health Monitor imposti OFFLINE_MODE = OFF .
|
disk_recovery_time_2 |
300 secondi | Il tempo aggiuntivo (in secondi) durante il quale lo storage disponibile deve rimanere sopra disk_recovery_level dopo disk_recovery_time_1 prima che Health Monitor imposti SUPER_READ_ONLY = OFF .
|
disk_recovery_max_cycles |
3 cicli | Il numero massimo di volte in cui il server MySQL può essere rimesso in modalità operativa normale nel periodo di tempo disk_recovery_cycle_window .
|
disk_recovery_window |
86400 secondi | Il periodo di tempo, in secondi, successivo all'ultimo ciclo di recupero riuscito dopo il quale viene reimpostato il conteggio di recupero. Il valore 0 indica che il conteggio di recupero non viene mai reimpostato. |
disk_recovery_increment |
300 secondi | Tempo (in secondi) per aumentare i timer di recupero disk_recovery_time_1 e disk_recovery_time_2 per ogni ciclo di recupero.
|
disk_running |
ON | Stato attivo del monitoraggio del disco di Health Monitor. |
disk_sample_rate |
60 | Frequenza di raccolta dei dati del disco, in secondi. Per impostazione predefinita, i dati vengono raccolti ogni 60 secondi. La frequenza minima di campionamento è 1 (ogni secondo) e la massima è 86400 (una volta al giorno). |
disk_usage_warning_level_1 |
20 | Percentuale di spazio su disco disponibile al di sopra del valore disk_low_space_level definito. Se lo spazio su disco disponibile è inferiore a questo livello, viene generata l'avvertenza WARNING_DISK_USAGE_LEVEL_1 .
|
disk_usage_warning_level_2 |
10 | Percentuale di spazio su disco disponibile, al di sopra del valore disk_low_space_level definito. Se lo spazio su disco disponibile è inferiore a questo livello, viene generata l'avvertenza WARNING_DISK_USAGE_LEVEL_2 .
|
disk_usage_warning_level_3 |
5 | Percentuale di spazio su disco disponibile, al di sopra del valore disk_low_space_level definito. Se lo spazio su disco disponibile è inferiore a questo livello, viene generata l'avvertenza WARNING_DISK_USAGE_LEVEL_3 .
|
memory_reporting |
ON | Abilita il reporting dei dati di memoria. |
memory_retention |
86.400 |
Per quanti secondi viene conservato ogni campione di dati nelle tabelle della cronologia per i dati sull'uso della memoria. Il valore minimo è 1 secondo, l'impostazione predefinita è 86400 secondi (1 giorno) e il valore massimo è 864000 secondi (10 giorni). |
memory_running |
ON | Stato attivo del monitoraggio della memoria di Health Monitor. |
memory_sample_rate |
60 | Frequenza di raccolta dei dati di memoria, in secondi. Per impostazione predefinita, i dati vengono raccolti ogni 60 secondi. La frequenza minima di campionamento è 1 (ogni secondo) e la massima è 86400 (una volta al giorno). |
memory_usage_warning_level_1 |
1.024 | Quantità di memoria disponibile (MiB). Se la memoria disponibile scende al di sotto di questo livello, viene generata l'avvertenza WARNING_MEMORY_USAGE_LEVEL_1 .
|
memory_usage_warning_level_2 |
500 | Quantità di memoria disponibile (MiB). Se la memoria disponibile scende al di sotto di questo livello, viene generata l'avvertenza WARNING_MEMORY_USAGE_LEVEL_2 .
|
memory_usage_warning_level_3 |
100 | Quantità di memoria disponibile (MiB). Se la memoria disponibile scende al di sotto di questo livello, viene generata l'avvertenza WARNING_MEMORY_USAGE_LEVEL_3 .
|
status_interval |
10 | La frequenza (in multipli di disk_sample_rate ) di invio dei messaggi di stato alla tabella del log degli errori. Ad esempio, se status_interval = 10 e disk_sample_rate = 60 secondi, Health Monitor invia un messaggio di stato alla tabella del log degli errori ogni 600 secondi.
|
system_cpu_stats_history |
ON | Indica se le statistiche di utilizzo della CPU di sistema vengono raccolte e memorizzate nella tabella Schema prestazioni system_cpu_stats_history . Se queste statistiche non vengono memorizzate, è comunque possibile accedere a uno snapshot su richiesta eseguendo una query sulla tabella system_cpu_stats .
|
system_disk_stats_history |
ON | Indica se le statistiche di utilizzo del disco di sistema vengono raccolte e memorizzate nella tabella Schema prestazioni system_memory_stats_history . Se queste statistiche non vengono memorizzate, è comunque possibile accedere a uno snapshot su richiesta eseguendo una query sulla tabella system_memory_stats .
|
system_memory_stats_history |
ON | Indica se le statistiche sull'uso della memoria di sistema vengono raccolte e memorizzate nella tabella Schema prestazioni system_disk_stats_history . Se queste statistiche non vengono memorizzate, è comunque possibile accedere a uno snapshot su richiesta eseguendo una query sulla tabella system_disk_stats .
|
system_process_stats_history |
ON | Indica se le statistiche del processo server MySQL (mysqld ) vengono raccolte e memorizzate nella tabella Schema prestazioni system_process_stats_history . Se queste statistiche non vengono memorizzate, è comunque possibile accedere a uno snapshot su richiesta eseguendo una query sulla tabella system_process_stats .
|
system_retention |
86.400 |
Per quanti secondi viene conservato ogni campione di dati nelle tabelle della cronologia per le statistiche di sistema e di processo. Il valore minimo è 1 secondo, l'impostazione predefinita è 86400 secondi (1 giorno) e il valore massimo è 864000 secondi (10 giorni). |
system_running |
ON | Indica se le statistiche di sistema vengono raccolte da Health Monitor. Quando questa opzione è impostata su ON , sono disponibili le tabelle statistiche relative all'uso della CPU di sistema, all'uso del disco, all'uso della memoria e al processo del server MySQL (mysqld ) e le tabelle di cronologia corrispondenti vengono popolate se le relative variabili di sistema sono impostate su ON .
|
system_sample_rate |
60 | Frequenza di raccolta delle statistiche di sistema, in secondi. Per impostazione predefinita, i dati vengono raccolti ogni 60 secondi. La frequenza minima di campionamento è 1 (ogni secondo) e la massima è 86400 (una volta al giorno). |
Messaggi Health Monitor
Gli errori, le avvertenze e gli aggiornamenti di stato di Health Monitor vengono registrati in performance_schema.error_log
. Health Monitor abbrevia TiB come T, GiB come G e MiB come M nel log degli errori. Ad esempio, 306.6G = 306,6 GiB = 329,2 GB.
Tabella 17-9 Messaggi di Health Monitor
Tipo di messaggio | descrizione; |
---|---|
Aggiornamento stato | Health Monitor esegue un aggiornamento dello stato di routine in base al numero di secondi definito da sample_rate * status_interval . Ad esempio:
|
Soglia di avvertenza | Se la quantità di spazio disponibile è inferiore a una delle soglie definite da disk_usage_warning_level_* , Health Monitor genera un'avvertenza. L'esempio seguente mostra l'avvertenza per disk_usage_warning_level_2 , definita come il 4% dello spazio totale al di sopra del limite di spazio minimo:
|
disk_low_space_duration Avvertenza
|
Se lo spazio su disco disponibile scende al di sotto del limite di spazio minimo di 18 GiB, Health Monitor avvia il timer di fallback e genera un'avvertenza. Ad esempio:
|
Avvertenza modalità OFFLINE/SUPER_READ_ONLY
|
Se lo spazio su disco disponibile rimane inferiore al limite di spazio minimo per più di disk_low_space_duration secondi, Health Monitor inserisce il server in SUPER_READ_ONLY e OFFLINE_MODE . Ad esempio: Vedere Risoluzione del problema SUPER_READ_ONLY e OFFLINE_MODE causato dallo spazio di storage libero ridotto.
|
Avvertenza critica | Se lo spazio su disco disponibile scende al di sotto di disk_low_space_critical_level per un periodo di tempo qualsiasi, Health Monitor attiva la modalità SUPER_READ_ONLY del server. Ad esempio:
|
Avvertenza timer annullato | Se lo spazio disponibile supera il limite di spazio minimo prima del completamento di disk_low_space_duration secondi, il timer della modalità di fallback viene annullato e Health Monitor invia un messaggio di stato o di avvertenza se lo spazio disponibile è ancora compreso in un intervallo di avvertenza. Ad esempio:[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 |
Avviso di memoria | Se la memoria disponibile è inferiore a una delle soglie definite da memory_usage_warning_level_* , Health Monitor genera un'avvertenza che include i dettagli di diagnostica della memoria in valori separati da virgole (csv). I dati CSV nell'esempio seguente sono stati rimossi a causa di un vincolo di spazio. [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>... |
Argomenti correlati