Health Monitor
O Health Monitor coleta estatísticas para uso da CPU do sistema, uso do disco, uso da memória e o processo do servidor MySQL (mysqld
). As estatísticas são registradas em tabelas de histórico, para as quais o Health Monitor coleta amostras uma vez por minuto e retém dados de um dia. Você também pode acessar essas estatísticas em tabelas preenchidas com leituras atuais sob demanda ao consultá-las.
Visão Geral do Health Monitor
O Health Monitor mostra informações de espaço em disco, informações de memória do sistema e informações de memória de processo a cada sessenta segundos e armazena um valor diário de dados em tabelas no Esquema de Desempenho do MySQL Server. Se o espaço em disco disponível ou a memória disponível ficar abaixo de determinados limites predefinidos, o Health Monitor emitirá avisos e o registrará na tabela performance_schema.error_log
.
O Health Monitor usa unidades de armazenamento MiB/GiB/TiB em que 100 GB = 93 GiB.
O armazenamento total disponível para um sistema de banco de dados contém o seguinte:
- Armazenamento disponível: o espaço em disco após a reserva de armazenamento é excluído do armazenamento total.
- Reserva de armazenamento: O espaço em disco menor das variáveis de configuração
disk_low_space_level
edisk_low_space_percent
. O valor padrão dedisk_low_space_level
é 5.000 MiB e o valor padrão dedisk_low_space_percent
é 4% do armazenamento total. - Armazenamento crítico: o espaço em disco na reserva de armazenamento abaixo do limite crítico, que é definido pela variável de configuração
disk_low_space_critical_level
. Este é o espaço em disco mínimo viável para o sistema evitar a exaustão do disco. O espaço de armazenamento crítico padrão é 2.000 MiB.
Avisos de espaço em disco
Quando o espaço em disco fica abaixo de determinada porcentagem do armazenamento disponível, o Health Monitor emite os seguintes avisos e o registra na tabela performance_schema.error_log
:
WARNING_DISK_USAGE_LEVEL_1
: Quando o espaço em disco fica abaixo de 20% do armazenamento disponível.WARNING_DISK_USAGE_LEVEL_2
: Quando o espaço em disco fica abaixo de 10% do armazenamento disponível.WARNING_DISK_USAGE_LEVEL_3
: Quando o espaço em disco fica abaixo de 5% do armazenamento disponível.
Por exemplo, se o armazenamento total for 100.000 MiB e a reserva de armazenamento for menor das duas variáveis de configuração a seguir:
disk_low_space_level
: O valor padrão é 5.000 MiB.disk_low_space_percent
: É 4% do armazenamento total, ou seja, 4% de 100.000 MiB = 4.000 MiB.
A reserva de armazenamento é 4.000 MiB, que é menor das duas variáveis de configuração.
Você pode encontrar o armazenamento disponível excluindo a reserva de armazenamento do armazenamento total:
100,000 - 4,000 = 96,000 MiB
O Health Monitor emite os seguintes avisos:
WARNING_DISK_USAGE_LEVEL_1
: Quando o espaço em disco fica abaixo de 20% do armazenamento disponível, que é 20/100*96.000 = 19.200 MiB.WARNING_DISK_USAGE_LEVEL_2
: Quando o espaço em disco fica abaixo de 10% do armazenamento disponível, que é 10/100*96.000 = 9.600 MiB.WARNING_DISK_USAGE_LEVEL_3
: Quando o espaço em disco fica abaixo de 5% do armazenamento disponível, que é 5/100*96.000 = 4.800 MiB.
Falta significativa ou sustentada de espaço em disco
O Health Monitor define uma falta significativa ou sustentada de espaço em disco quando as seguintes condições são atendidas:
- Falta significativa: O espaço em disco fica abaixo do limite crítico definido por
disk_low_space_critical_level
. - Falta sustentada: O espaço em disco fica abaixo da reserva de armazenamento e, em seguida, permanece na reserva de armazenamento pela duração definida pela variável de configuração
disk_low_space_duration
.
Quando há uma escassez significativa ou sustentada de espaço em disco, o Health Monitor faz o seguinte:
SUPER_READ_ONLY=ON
: Define as variáveis do sistema,SUPER_READ_ONLY
, como ON no MySQL Server. O MySQL Server rejeita todas as novas instruções de gravação SQL de entrada (UPDATE
,INSERT
,DELETE
eDDL
), independentemente dos usuários e dos privilégios. As transações em execução podem ser concluídas, mas novas gravações são proibidas até que o espaço em disco esteja disponível novamente. Você não pode carregar dados no cluster HeatWave quando o servidor está no modoSUPER_READ_ONLY
.Em alguns casos, bloqueios de leitura global, commits contínuos ou bloqueios de metadados bloqueiam o Health Monitor de definir a variável de sistema
SUPER_READ_ONLY
. Nesses casos, se você definir a variávelhealth_monitor.disk_fallback_force
, o Health Monitor identificará e encerrará consultas ativas que contêm bloqueios globais para definir a variável do sistemaSUPER_READ_ONLY
.OFFLINE_MODE=ON
: Define a variável do sistema,OFFLINE_MODE
, como ON no MySQL Server. O MySQL Server desconecta usuários clientes que não têm o privilégioCONNECTION_ADMIN
, termina instruções de execução e releases e bloqueia novas conexões com um erro apropriado.super_read_only_disk_full=ON
: Define a variável de status,super_read_only_disk_full
, como ON, indicando que o modo somente leitura foi acionado devido ao baixo espaço em disco. Você pode ver o valor da variável de statussuper_read_only_disk_full
com um dos seguintes comandos: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';
As variáveis do sistema mudam o comportamento do MySQL Server, enquanto as variáveis de status são indicadores estáticos do estado do MySQL Server.
Recuperação para a Operação Normal
Depois que SUPER_READ_ONLY
e OFFLINE_MODE
são definidos, o Health Monitor faz o seguinte:
- Verifique o espaço em disco a cada minuto.
- Defina
OFFLINE_MODE=OFF
se o espaço em disco disponível se recuperar e permanecer acima dedisk_recovery_level
pordisk_recovery_time_1
segundos ou mais. - Defina
SUPER_READ_ONLY=OFF
se o espaço em disco disponível se recuperar e permanecer acima dedisk_recovery_level
por maisdisk_recovery_time_2
segundos ou mais.
As operações normais são retomadas quando o espaço em disco permanece acima de disk_recovery_level
por disk_recovery_time_1
+ disk_recovery_time_2
segundos.
Depois que o espaço em disco se recupera, o Health Monitor limpa as variáveis do sistema, SUPER_READ_ONLY
e OFFLINE_MODE
, e a variável de status, super_read_only_disk_full
. Você não precisa reiniciar a instância MySQL para limpar as variáveis.
Se houver uma falta significativa ou sustentada de espaço em disco novamente, o Health Monitor definirá novamente as variáveis do sistema, SUPER_READ_ONLY
e OFFLINE_MODE
, e a variável de status, super_read_only_disk_full
, como ON no MySQL Server.
Antes de retornar uma instância principal de um sistema de BD de alta disponibilidade para o modo operacional normal, o Health Monitor verifica se o servidor está on-line com a maioria do grupo. O Health Monitor nunca define SUPER_READ_ONLY
ou OFFLINE_MODE
nas instâncias secundárias.
Incremento de Recuperação, Ciclo Máximo de Recuperação e Janela de Recuperação
Cada vez que o MySQL Server se recupera de uma falta significativa ou sustentada de espaço em disco, o Health Monitor aumenta o tempo de recuperação do disco em disk_recovery_increment
segundos.
Por exemplo, se disk_recovery_time_1
= 300 segundos e disk_recovery_time_2
= 600 segundos e disk_recovery_increment
= 400 segundos, o tempo de recuperação do disco para cada ciclo será o seguinte:
- Ciclo 1:
disk_recovery_time_1
= 300 segundos,disk_recovery_time_2
= 600 segundos - Ciclo 2:
disk_recovery_time_1
= (300 + 400) segundos,disk_recovery_time_2
= (600 + 400) segundos - Ciclo 3:
disk_recovery_time_1
= (300+400+400) segundos,disk_recovery_time_2
= (600+400+400) segundos
O Health Monitor restaura para o modo operacional normal um máximo de disk_recovery_max_cycles
vezes em uma janela fixa de disk_recovery_window
segundos, a partir do último ciclo de recuperação. Por exemplo, se disk_recovery_max_cycles
estiver definido como 5 e disk_recovery_window
estiver definido como 86.400 segundos (1 dia), o Health Monitor poderá restaurar para o modo operacional normal cinco vezes em uma janela de 86.400 segundos. Se ocorrer uma escassez significativa ou sustentada na sexta vez na mesma janela, as variáveis do sistema, SUPER_READ_ONLY
e OFFLINE_MODE
, serão definidas como ATIVADAS.
A contagem de recuperação é redefinida após disk_recovery_window
segundos da última recuperação.
Advertências de Memória
Quando a memória disponível fica abaixo de determinados limites, o Health Monitor emite os seguintes avisos:
WARNING_MEMORY_USAGE_LEVEL_1
: Quando a memória disponível fica abaixo de 1024 MiB.WARNING_MEMORY_USAGE_LEVEL_2
: Quando a memória disponível fica abaixo de 500 MiB.WARNING_MEMORY_USAGE_LEVEL_3
: Quando a memória disponível fica abaixo de 100 MiB.
O Health Monitor registra as informações sobre a versão MySQL, o uso da memória global e várias definições de configuração no log de erros. As informações são registradas como valores separados por vírgulas para facilitar a transferência para uma planilha para análise posterior.
Visualizar tabelas do Health Monitor
As tabelas do Health Monitor armazenam dados e estatísticas de monitoramento no Esquema de Desempenho do MySQL Server.
As tabelas de integridade contêm informações de armazenamento em disco, informações de memória do sistema e informações de memória de processo.
As tabelas de estatísticas contêm estatísticas para uso da CPU do sistema, uso do disco, uso da memória e o processo do servidor MySQL (mysqld
). Cada tabela de estatísticas tem duas versões, uma versão sob demanda, que é preenchida com leituras atuais quando você a consulta, e uma versão de histórico para a qual o Health Monitor coleta amostras uma vez por minuto e retém um dia de dados. As duas versões da tabela têm as mesmas colunas.
Usando um Cliente de Linha de Comando
Use um cliente de linha de comando, como MySQL Client ou MySQL Shell, para exibir as tabelas do Health Monitor.
- Um cliente de linha de comando, como MySQL Shell, que está conectado ao sistema de banco de dados. Consulte Conectando-se a um Sistema de Banco de Dados.
+-------------------------+---------------------+-------------+-----------------+-------------+-------------+
| 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 |
Tabelas do Health Monitor
Consulte as Tabelas do Health Monitor para ver as informações de armazenamento em disco, informações de memória do sistema e informações de memória do processo.
A lista completa de tabelas do Health Monitor é a seguinte:
performance_schema.health_block_device
: Informações de status de armazenamento em disco.performance_schema.health_system_memory
: Informações de status da memória do sistema.performance_schema.health_process_memory
: Processar informações de status da memória.performance_schema.system_cpu_stats
: Estatísticas de uso da CPU, preenchidas sob demanda.performance_schema.system_cpu_stats_history
: Estatísticas de uso da CPU armazenada.performance_schema.system_disk_stats
: Estatísticas de uso do disco, preenchidas sob demanda.performance_schema.system_disk_stats_history
: Estatísticas de uso do disco armazenado.performance_schema.system_memory_stats
: Estatísticas de uso da memória, preenchidas sob demanda.performance_schema.system_memory_stats_history
: Estatísticas de uso da memória armazenada.performance_schema.system_process_stats
: Estatísticas de processo e thread, preenchidas sob demanda.performance_schema.system_process_stats_history
: Estatísticas de processo e thread armazenadas.performance_schema.error_log
: Advertências e erros. Consulte Exibindo o Log de Erros.
Tabela performance_schema.health_block_device
O Health Monitor usa a tabela performance_schema.health_block_device
no Esquema de Desempenho do MySQL Server para armazenar dados no espaço em disco usado e disponível em um sistema de banco de dados.
Tabela 17-1 health_block_device Tabela do Esquema de Desempenho
Coluna | Descrição: |
---|---|
DEVICE |
O nome do dispositivo do disco. |
TIMESTAMP |
O horário em que a amostra de dados nesta linha foi coletada. |
TOTAL_BYTES |
O volume total de armazenamento no dispositivo, em bytes. |
AVAILABLE_BYTES |
O volume de armazenamento disponível no dispositivo, em bytes. |
USE_PERCENT |
A porcentagem do espaço em disco em uso. |
MOUNT_POINT |
O ponto de montagem do dispositivo. |
Tabela performance_schema.health_system_memory
O Health Monitor usa a tabela performance_schema.health_system_memory
no Esquema de Desempenho do MySQL Server para armazenar dados sobre o uso da memória pelo sistema de banco de dados
Tabela 17-2 health_system_memory Tabela do Esquema de Desempenho
Coluna | Descrição: |
---|---|
TIMESTAMP |
O horário em que a amostra de dados nesta linha foi coletada. |
TOTAL_MEMORY |
A quantidade total de memória do sistema, em bytes. |
AVAILABLE |
A memória disponível para iniciar novos aplicativos sem troca, em bytes. |
USE_PERCENT |
A porcentagem de memória em uso. |
MEMORY_FREE |
A quantidade de memória não utilizada. |
MEMORY_FS_CACHE |
O cache da página do sistema de arquivos. |
SWAP_TOTAL |
O valor total da memória de permuta. |
SWAP_FREE |
O volume total de memória swap livre. |
Tabela performance_schema.health_process_memory
O Health Monitor usa a tabela performance_schema.health_process_memory
no Esquema de Desempenho do MySQL Server para armazenar dados sobre o uso da memória pelo processo do MySQL Server (mysqld) no sistema de banco de dados.
Tabela 17-3 health_process_memory Tabela do Esquema de Desempenho
Coluna | Descrição: |
---|---|
TIMESTAMP |
O horário em que a amostra de dados nesta linha foi coletada. |
PROCESS_NAME |
O nome do processo do MySQL Server. |
PID |
O identificador do sistema para o processo do MySQL Server. |
VM_RSS |
O tamanho do conjunto residente do processo do servidor MySQL, em bytes. |
VM_DATA |
O tamanho do segmento de dados do processo do MySQL Server, em bytes. |
VM_SWAP |
O tamanho do segmento de swap do processo do servidor MySQL, em bytes. |
PAGE_FAULTS |
O número de falhas de página que requerem Entrada/Saída de disco. |
Tabela performance_schema.system_cpu_stats
O Health Monitor coleta estatísticas de uso da CPU pelo sistema de banco de dados. As estatísticas estão disponíveis em duas tabelas no Esquema de Desempenho do MySQL Server, uma tabela sob demanda e uma tabela de histórico correspondente. As duas tabelas têm as mesmas colunas.
A tabela performance_schema.system_cpu_stats
no Esquema de Desempenho do MySQL Server é preenchida com uma amostra de dados quando você a consulta. A tabela performance_schema.system_cpu_stats_history
armazena amostras de dados regularmente.
As estatísticas nessas tabelas são provenientes do arquivo do sistema Linux /proc/stat
.
Tabela 17-4 Tabelas de Esquema de Desempenho system_cpu_stats e system_cpu_stats_history
Coluna | Descrição: |
---|---|
TIMESTAMP |
O horário em que a amostra de dados nesta linha foi coletada. |
CPU |
A linha da CPU mostra os dados de uso de CPU agregados, e cada linha numerada (por exemplo, cpu0, cpu1) mostra dados de um processo individual. Todos os horários são em milissegundos. |
USER_MS |
O tempo gasto no modo de usuário. |
NICE_MS |
O tempo gasto no modo de usuário com baixa prioridade. |
SYSTEM_MS |
O tempo gasto no modo de sistema. |
IDLE_MS |
O tempo gasto na tarefa ociosa. |
IOWAIT_MS |
O tempo gasto esperando a conclusão da E/S. |
IRQ_MS |
O tempo gasto no serviço de interrupções de hardware. |
SOFTIRQ_MS |
O tempo gasto na manutenção do software interrompe. |
STEAL_MS |
O tempo gasto na execução de outros sistemas operacionais em um ambiente virtualizado. |
GUEST_MS |
O tempo gasto na execução de uma CPU virtual com prioridade normal. |
GUEST_NICE_MS |
O tempo gasto na execução de uma CPU virtual com baixa prioridade. |
Tabela performance_schema.system_disk_stats
O Health Monitor coleta estatísticas para uso do disco pelo sistema de banco de dados. As estatísticas estão disponíveis em duas tabelas no Esquema de Desempenho do MySQL Server, uma tabela sob demanda e uma tabela de histórico correspondente. As duas tabelas têm as mesmas colunas.
A tabela performance_schema.system_disk_stats
no Esquema de Desempenho do MySQL Server é preenchida com uma amostra de dados quando você a consulta. A tabela performance_schema.system_disk_stats_history
armazena amostras de dados regularmente.
As estatísticas nessas tabelas são provenientes do arquivo do sistema Linux /proc/diskstats
.
Tabela 17-5 Tabelas de Esquema de Desempenho system_disk_stats e system_disk_stats_history
Coluna | Descrição: |
---|---|
TIMESTAMP |
O horário em que a amostra de dados nesta linha foi coletada. |
DEVICE |
O nome do dispositivo deste disco. |
READS |
O número de leituras concluídas com êxito. |
READ_BYTES |
O número de bytes lidos. |
READ_TIME_MS |
O tempo gasto lendo, em milissegundos. |
WRITES |
O número de gravações concluídas com êxito. |
WRITE_BYTES |
O número de bytes gravados. |
WRITE_TIME_MS |
O tempo gasto escrevendo, em milissegundos. |
FLUSHES |
O número de solicitações de descarga concluídas com sucesso. |
FLUSH_TIME_MS |
O tempo gasto na lavagem, em milissegundos. |
Tabela performance_schema.system_memory_stats
O Health Monitor coleta estatísticas para uso da memória pelo sistema de banco de dados. As estatísticas estão disponíveis em duas tabelas no Esquema de Desempenho do MySQL Server, uma tabela sob demanda e uma tabela de histórico correspondente. As duas tabelas têm as mesmas colunas.
A tabela performance_schema.system_memory_stats
no Esquema de Desempenho do MySQL Server é preenchida com uma amostra de dados quando você a consulta. A tabela performance_schema.system_memory_stats_history
armazena amostras de dados regularmente.
As estatísticas nessas tabelas são provenientes do arquivo do sistema Linux /proc/meminfo
.
Tabela 17-6 Tabelas de Esquema de Desempenho system_memory_stats e system_memory_stats_history
Coluna | Descrição: |
---|---|
TIMESTAMP |
O horário em que a amostra de dados nesta linha foi coletada. |
TOTAL_BYTES |
A memória total do sistema utilizável, em bytes. |
FREE_BYTES |
A memória não utilizada. |
USED_BYTES |
O total de memória usada. |
AVAILABLE_BYTES |
A memória estimada disponível para iniciar novos aplicativos, em bytes. |
BUFFER_BYTES |
A quantidade de memória usada para armazenamento temporário para blocos brutos de disco. |
CACHED_BYTES |
A quantidade de memória usada para armazenar arquivos em cache lidos do disco (o cache da página). |
SLAB_BYTES |
A quantidade de memória usada para armazenar em cache as estruturas de dados no kernel. |
SWAP_TOTAL_BYTES |
A quantidade total de espaço de troca disponível no disco. |
SWAP_FREE_BYTES |
A quantidade total de espaço de permuta não utilizado no momento. |
SWAP_USED_BYTES |
A quantidade total de memória que foi trocada da RAM e está temporariamente no disco. |
SWAP_IN |
A quantidade de memória trocada de volta para a RAM do disco, em KB por segundo. |
SWAP_OUT |
A quantidade de memória trocada da RAM para o disco, em KB por segundo. |
Tabela performance_schema.system_process_stats
O Health Monitor coleta estatísticas para cada thread usado pelo processo do MySQL Server no sistema de banco de dados. As estatísticas estão disponíveis em duas tabelas no Esquema de Desempenho do MySQL Server, uma tabela sob demanda e uma tabela de histórico correspondente. As duas tabelas têm as mesmas colunas.
A tabela performance_schema.system_process_stats
no Esquema de Desempenho do MySQL Server é preenchida com uma amostra de dados quando você a consulta. A tabela performance_schema.system_process_stats_history
armazena amostras de dados regularmente.
Para estatísticas do processo, a tabela sob demanda retorna uma linha para cada thread usado pelo processo mysqld
. No entanto, a tabela de histórico armazena uma única linha para cada amostra, com os totais agregados de todos os threads usados pelo processo mysqld
.
As estatísticas nessas tabelas são provenientes do arquivo do sistema Linux /proc/self/task/[pid]/stat
.
Tabela 17-7 Tabelas de Esquema de Desempenho system_process_stats e system_process_stats_history
Coluna | Descrição: |
---|---|
TIMESTAMP |
O horário em que a amostra de dados nesta linha foi coletada. |
PID |
O ID do processo. |
PROCESS_NAME |
O nome do processo, que é mysqld .
|
TID |
O ID do thread individual mostrado nesta linha. |
THREAD_NAME |
O nome do thread instrumentado para o thread individual mostrado nesta linha. |
STATE |
Um caractere que mostra o estado do thread no momento da amostra: em execução (R ), adormecido em uma espera interrompível (S ), aguardando em um sono de disco ininterrupto (D ), thread zumbi (Z ), interrompido em um sinal ou rastreamento interrompido (T ), paginação (W ), inoperante (X ), despertar (K ), despertar (W ) ou estacionado (P ).
|
UTIME_MS |
O tempo gasto neste thread no modo de usuário, em milissegundos. |
STIME_MS |
O tempo gasto neste thread no modo kernel, em milissegundos. |
CUTIME_MS |
O tempo que os processos filho desse processo passaram no modo de usuário, em milissegundos. |
CSTIME_MS |
O tempo que os processos filhos desse processo passaram no modo kernel, em milissegundos. |
NUM_THREADS |
O monstro de threads neste processo. |
VSIZE_BYTES |
O tamanho da memória virtual em bytes. |
RSS_BYTES |
O número de bytes que o processo tem na memória real (o tamanho do conjunto residente). |
RSSLIM_BYTES |
O limite em bytes no tamanho do conjunto residente do processo. |
PROCESSOR |
O número da CPU em que o thread foi executado pela última vez. |
DELAYACCT_BLKIO_MS |
Atrasos de E/S de bloco agregado, em milissegundos. |
GUEST_TIME_MS |
O tempo do hóspede para o processo, em milissegundos. |
CGUEST_TIME_MS |
O tempo do hóspede para os processos filho do processo, em milissegundos. |
READ_BYTES |
O número de bytes que este processo extraiu da camada de armazenamento. |
WRITE_BYTES |
O número de bytes que este processo enviou para a camada de armazenamento. |
Exibindo Variáveis do Health Monitor
As variáveis do Health Monitor são definições de configuração para a atividade de monitoramento no sistema de banco de dados. Você não pode alterar os valores dessas variáveis.
Usando um Cliente de Linha de Comando
Use um cliente de linha de comando, como MySQL Client ou MySQL Shell, para exibir as variáveis do Health Monitor e seus valores.
- Um sistema de banco de dados em execução.
- Um cliente de linha de comando, como MySQL Client ou MySQL Shell, que está conectado ao sistema de banco de dados. Consulte Conectando-se a um Sistema de Banco de Dados.
+----------------------------------------------+-------+
| 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)
Variáveis do Health Monitor
Todas as variáveis do sistema do Health Monitor são prefixadas com health_monitor
. Não é possível alterar os valores das variáveis de seus padrões em um sistema de banco de dados.
O prefixo
health_monitor.
é omitido da tabela abaixo. Por exemplo, disk_fallback_enable
na verdade é health_monitor.disk_fallback_enable
.
Tabela 17-8 Variáveis do Sistema do Health Monitor
Variável de Sistema | Valor Padrão | Descrição: |
---|---|---|
disk_fallback_enable |
ON | Se houver uma falta significativa ou sustentada de espaço em disco, o Health Monitor definirá a variável do sistema, SUPER_READ_ONLY e OFFLINE_MODE como ON no MySQL Server.
|
disk_fallback_force |
Desativado | Encerre as consultas em primeiro plano que estão mantendo bloqueios de metadados globais e tente definir SUPER_READ_ONLY novamente.
|
disk_low_space_critical_level |
2,000 | O limite crítico de pouco espaço em disco em MiB. Se o espaço em disco disponível ficar abaixo desse valor por qualquer duração, o Health Monitor definirá os modos SUPER_READ_ONLY e OFFLINE_MODE no MySQL Server.
|
disk_low_space_duration |
300 | A duração (em segundos) pela qual o espaço em disco disponível pode permanecer abaixo de disk_low_space_level ou disk_low_space_percent (o que for menor) antes do Health Monitor definir os modos SUPER_READ_ONLY e OFFLINE_MODE no MySQL Server.
|
disk_low_space_level |
5,000 | O limite baixo de espaço para a reserva de armazenamento, em MiB. Se o espaço em disco disponível ficar abaixo dessa porcentagem do total de armazenamento disponível por mais tempo que o valor de disk_low_space_duration , o Health Monitor definirá os modos SUPER_READ_ONLY e OFFLINE_MODE no MySQL Server.
|
disk_low_space_percent |
4 | O limite de espaço baixo para a reserva de armazenamento, expresso como uma porcentagem. Se o espaço em disco disponível ficar abaixo dessa porcentagem do total de armazenamento disponível por mais tempo que o valor de disk_low_space_duration , o Health Monitor definirá os modos SUPER_READ_ONLY e OFFLINE_MODE no MySQL Server.
|
disk_monitored |
/db | O ponto de montagem para estatísticas de disco. |
disk_retention |
86,400 |
Por quantos segundos cada amostra de dados é mantida nas tabelas de histórico para dados de uso do disco. O valor mínimo é 1 segundo, o padrão é 86400 segundos (1 dia) e o valor máximo é 864000 segundos (10 dias). Se |
disk_recovery_enable |
ON | Defina a variável como ON para permitir a recuperação de uma escassez sustentada ou significativa e como OFF para desativar a recuperação de uma escassez sustentada ou significativa. |
disk_recovery_level |
5% | A porcentagem do espaço total em disco acima da reserva de armazenamento.
|
disk_recovery_time_1 |
300 segundos | O tempo (em segundos) que o armazenamento disponível deve permanecer acima de disk_recovery_level antes que o Health Monitor defina OFFLINE_MODE = OFF .
|
disk_recovery_time_2 |
300 segundos | O tempo adicional (em segundos) que o armazenamento disponível deve permanecer acima de disk_recovery_level após disk_recovery_time_1 antes que o Health Monitor defina SUPER_READ_ONLY = OFF .
|
disk_recovery_max_cycles |
3 ciclos | O número máximo de vezes que o servidor MySQL pode ser colocado de volta no modo operacional normal dentro do período disk_recovery_cycle_window .
|
disk_recovery_window |
86400 segundos | O tempo (em segundos) após o último ciclo de recuperação bem-sucedido após o qual a contagem de recuperação é redefinida. Um valor 0 significa que a contagem de recuperação nunca é redefinida. |
disk_recovery_increment |
300 segundos | O tempo (em segundos) para aumentar os temporizadores de recuperação disk_recovery_time_1 e disk_recovery_time_2 para cada ciclo de recuperação.
|
disk_running |
ON | O estado ativo do monitor de disco do Health Monitor. |
disk_sample_rate |
60 | A frequência da coleta de dados do disco, em segundos. Por padrão, os dados são coletados a cada 60 segundos. A taxa mínima de amostragem é de 1 (a cada segundo) e o máximo é de 86400 (uma vez por dia). |
disk_usage_warning_level_1 |
20 | Uma porcentagem do espaço em disco disponível acima do disk_low_space_level definido. Se o espaço em disco disponível ficar abaixo desse nível, a advertência WARNING_DISK_USAGE_LEVEL_1 será gerada.
|
disk_usage_warning_level_2 |
10 | Uma porcentagem do espaço em disco disponível, acima do disk_low_space_level definido. Se o espaço em disco disponível ficar abaixo desse nível, a advertência WARNING_DISK_USAGE_LEVEL_2 será gerada.
|
disk_usage_warning_level_3 |
5 | Uma porcentagem do espaço em disco disponível, acima do disk_low_space_level definido. Se o espaço em disco disponível ficar abaixo desse nível, a advertência WARNING_DISK_USAGE_LEVEL_3 será gerada.
|
memory_reporting |
ON | Permite a geração de relatórios de dados de memória. |
memory_retention |
86,400 |
Por quantos segundos cada amostra de dados é mantida nas tabelas de histórico para dados de uso da memória. O valor mínimo é 1 segundo, o padrão é 86400 segundos (1 dia) e o valor máximo é 864000 segundos (10 dias). |
memory_running |
ON | O estado ativo do monitor de memória do Health Monitor. |
memory_sample_rate |
60 | A frequência da coleta de dados da memória, em segundos. Por padrão, os dados são coletados a cada 60 segundos. A taxa mínima de amostragem é de 1 (a cada segundo) e o máximo é de 86400 (uma vez por dia). |
memory_usage_warning_level_1 |
1,024 | Uma quantidade de memória disponível (MiB). Se a memória disponível ficar abaixo desse nível, o aviso WARNING_MEMORY_USAGE_LEVEL_1 será gerado.
|
memory_usage_warning_level_2 |
500 | Uma quantidade de memória disponível (MiB). Se a memória disponível ficar abaixo desse nível, o aviso WARNING_MEMORY_USAGE_LEVEL_2 será gerado.
|
memory_usage_warning_level_3 |
100 | Uma quantidade de memória disponível (MiB). Se a memória disponível ficar abaixo desse nível, o aviso WARNING_MEMORY_USAGE_LEVEL_3 será gerado.
|
status_interval |
10 | A frequência (em múltiplos de disk_sample_rate ) do envio das mensagens de status para a tabela de log de erros. Por exemplo, se status_interval = 10 e disk_sample_rate = 60 segundos, o Health Monitor enviará uma mensagem de status à tabela de log de erros a cada 600 segundos.
|
system_cpu_stats_history |
ON | Se as estatísticas de uso da CPU do sistema são coletadas e armazenadas na tabela Esquema de Desempenho system_cpu_stats_history . Se essas estatísticas não forem armazenadas, você ainda poderá acessar um snapshot sob demanda consultando a tabela system_cpu_stats .
|
system_disk_stats_history |
ON | Se as estatísticas de uso do disco do sistema são coletadas e armazenadas na tabela Esquema de Desempenho system_memory_stats_history . Se essas estatísticas não forem armazenadas, você ainda poderá acessar um snapshot sob demanda consultando a tabela system_memory_stats .
|
system_memory_stats_history |
ON | Se as estatísticas de uso da memória do sistema são coletadas e armazenadas na tabela Esquema de Desempenho system_disk_stats_history . Se essas estatísticas não forem armazenadas, você ainda poderá acessar um snapshot sob demanda consultando a tabela system_disk_stats .
|
system_process_stats_history |
ON | Se as estatísticas do processo do servidor MySQL (mysqld ) são coletadas e armazenadas na tabela Esquema de Desempenho system_process_stats_history . Se essas estatísticas não forem armazenadas, você ainda poderá acessar um snapshot sob demanda consultando a tabela system_process_stats .
|
system_retention |
86,400 |
Por quantos segundos cada amostra de dados é mantida nas tabelas de histórico para estatísticas do sistema e do processo. O valor mínimo é 1 segundo, o padrão é 86400 segundos (1 dia) e o valor máximo é 864000 segundos (10 dias). |
system_running |
ON | Se as estatísticas do sistema são coletadas pelo Health Monitor. Quando isso é definido como ON , as tabelas de estatísticas para uso da CPU do sistema, uso do disco, uso da memória e o processo do servidor MySQL (mysqld ) estão disponíveis, e as tabelas de histórico correspondentes são preenchidas se suas variáveis do sistema forem definidas como ON .
|
system_sample_rate |
60 | A frequência da coleta de estatísticas do sistema, em segundos. Por padrão, os dados são coletados a cada 60 segundos. A taxa mínima de amostragem é de 1 (a cada segundo) e o máximo é de 86400 (uma vez por dia). |
Mensagens do Health Monitor
Os erros, avisos e atualizações de status do Health Monitor são registrados em performance_schema.error_log
. O Health Monitor abrevia TiB como T, GiB como G e MiB como M no log de erros. Por exemplo, 306.6G = 306,6 GiB = 329,2 GB.
Tabela 17-9 Mensagens do Health Monitor
Tipo de Mensagem | Descrição: |
---|---|
Atualização do Status | O Health Monitor emite uma atualização de status de rotina de acordo com o número de segundos definido por sample_rate * status_interval . Por exemplo:
|
Aviso de Limite | Se a quantidade de espaço disponível ficar abaixo de um dos limites definidos por disk_usage_warning_level_* , o Health Monitor emitirá um aviso. O exemplo a seguir mostra a advertência para disk_usage_warning_level_2 , definido como 4% do espaço total acima do limite de pouco espaço:
|
Aviso de disk_low_space_duration
|
Se o espaço em disco disponível ficar abaixo do limite de espaço baixo de 18 GiB, o Health Monitor iniciará o temporizador de fallback e emitirá uma advertência. Por exemplo:
|
Aviso de Modo OFFLINE/SUPER_READ_ONLY
|
Se o espaço em disco disponível permanecer abaixo do limite de pouco espaço por mais de disk_low_space_duration segundos, o Health Monitor colocará o servidor em SUPER_READ_ONLY e OFFLINE_MODE . Por exemplo: Consulte Resolvendo o Problema SUPER_READ_ONLY e OFFLINE_MODE Causado pelo Baixo Espaço Livre de Armazenamento.
|
Advertência Crítica | Se o espaço em disco disponível ficar abaixo de disk_low_space_critical_level por qualquer duração, o Health Monitor colocará o servidor no modo SUPER_READ_ONLY . Por exemplo:
|
Aviso de Timer Cancelado | Se o espaço disponível ficar acima do limite de pouco espaço antes da conclusão de disk_low_space_duration segundos, o timer do modo de fallback será cancelado e o Health Monitor emitirá uma mensagem de status ou uma mensagem de advertência se o espaço disponível ainda estiver dentro de uma faixa de advertência. Por exemplo:[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 |
Advertência de Memória | Se a memória disponível ficar abaixo de um dos limites definidos por memory_usage_warning_level_* , o Health Monitor emitirá um aviso que inclui os detalhes de diagnóstico de memória em valores separados por vírgulas (csv). Os dados csv no exemplo a seguir foram removidos devido a restrição de espaço. [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>... |
Tópicos Relacionados