Surveillance de l'état
Health Monitor collecte les statistiques relatives à l'utilisation de l'UC du système, à l'utilisation du disque, à l'utilisation de la mémoire et au processus serveur MySQL (mysqld
). Les statistiques sont consignées dans des tables d'historique, pour lesquelles Health Monitor prélève des échantillons une fois par minute et conserve une journée de données. Vous pouvez également accéder à ces statistiques dans des tables alimentées par les relevés en cours à la demande lorsque vous les interrogez.
Présentation de Health Monitor
Health Monitor échantillonne les informations d'espace disque, les informations de mémoire système et les informations de mémoire de traitement toutes les soixante secondes, et stocke une journée de données dans des tables du schéma de performances de MySQL Server. Si l'espace disque disponible ou la mémoire disponible est inférieur à certains seuils prédéfinis, Health Monitor émet des avertissements et les consigne dans la table performance_schema.error_log
.
Health Monitor utilise des unités de stockage MiB/GiB/TiB où 100 Go = 93 GiB.
Le stockage total disponible pour un système de base de données contient les éléments suivants :
- Stockage disponible : l'espace disque après la réserve de stockage est exclu du stockage total.
- Réserve de stockage : espace disque inférieur aux variables de configuration
disk_low_space_level
etdisk_low_space_percent
. La valeur par défaut dedisk_low_space_level
est 5 000 MiB, et la valeur par défaut dedisk_low_space_percent
est 4 % du stockage total. - Stockage critique : l'espace disque dans la réserve de stockage est inférieur au seuil critique, défini par la variable de configuration
disk_low_space_critical_level
. Il s'agit de l'espace disque minimum viable pour le système afin d'éviter l'épuisement du disque. L'espace de stockage critique par défaut est de 2 000 MiB.
Avertissements relatifs à l'espace disque
Lorsque l'espace disque est inférieur à un certain pourcentage du stockage disponible, Health Monitor émet les avertissements suivants et les consigne dans la table performance_schema.error_log
:
WARNING_DISK_USAGE_LEVEL_1
: lorsque l'espace disque est inférieur à 20 % du stockage disponible.WARNING_DISK_USAGE_LEVEL_2
: lorsque l'espace disque est inférieur à 10 % du stockage disponible.WARNING_DISK_USAGE_LEVEL_3
: lorsque l'espace disque est inférieur à 5 % du stockage disponible.
Par exemple, si le stockage total est de 100 000 MiB et que la réserve de stockage est inférieure aux deux variables de configuration suivantes :
disk_low_space_level
: la valeur par défaut est 5 000 MiB.disk_low_space_percent
: il s'agit de 4 % du stockage total, soit 4 % de 100 000 MiB = 4 000 MiB.
La réserve de stockage est de 4 000 MiB, ce qui est inférieur aux deux variables de configuration.
Vous pouvez trouver le stockage disponible en excluant la réserve de stockage du stockage total :
100,000 - 4,000 = 96,000 MiB
L'outil de surveillance de l'état émet les avertissements suivants :
WARNING_DISK_USAGE_LEVEL_1
: lorsque l'espace disque est inférieur à 20 % du stockage disponible, soit 20/100*96 000 = 19 200 MiB.WARNING_DISK_USAGE_LEVEL_2
: lorsque l'espace disque est inférieur à 10 % du stockage disponible, soit 10/100*96 000 = 9 600 MiB.WARNING_DISK_USAGE_LEVEL_3
: lorsque l'espace disque est inférieur à 5 % du stockage disponible, soit 5/100*96 000 = 4 800 MiB.
Manque important ou durable d'espace disque
Health Monitor définit une pénurie importante ou prolongée d'espace disque lorsque les conditions suivantes sont remplies :
- Pénurie significative : l'espace disque passe en dessous du seuil critique défini par
disk_low_space_critical_level
. - Pénurie prolongée : l'espace disque passe sous la réserve de stockage, puis reste dans la réserve de stockage pendant la durée définie par la variable de configuration
disk_low_space_duration
.
En cas de pénurie importante ou prolongée d'espace disque, Health Monitor effectue les opérations suivantes :
SUPER_READ_ONLY=ON
: définit les variables système,SUPER_READ_ONLY
, sur ON dans MySQL Server. MySQL Server rejette toutes les nouvelles instructions d'écriture SQL entrantes (UPDATE
,INSERT
,DELETE
etDDL
), indépendamment des utilisateurs et des privilèges. L'exécution des transactions est autorisée, mais les nouvelles écritures sont interdites jusqu'à ce que l'espace disque soit à nouveau disponible. Vous ne pouvez pas charger de données dans le cluster HeatWave lorsque le serveur est en modeSUPER_READ_ONLY
.Dans certains cas, les verrous globaux de lecture, les validations en cours ou les verrous de métadonnées empêchent Health Monitor de définir la variable système
SUPER_READ_ONLY
. Dans ce cas, si vous définissez la variablehealth_monitor.disk_fallback_force
, Health Monitor identifie et met fin aux requêtes actives contenant des verrous globaux pour définir la variable systèmeSUPER_READ_ONLY
.OFFLINE_MODE=ON
: définit la variable systèmeOFFLINE_MODE
sur ON dans MySQL Server. MySQL Server déconnecte les utilisateurs client qui ne disposent pas du privilègeCONNECTION_ADMIN
, met fin aux instructions en cours d'exécution, déverrouille et bloque les nouvelles connexions avec une erreur appropriée.super_read_only_disk_full=ON
: définit la variable de statut,super_read_only_disk_full
, sur ON, indiquant que le mode lecture seule a été déclenché en raison d'un espace disque faible. Vous pouvez voir la valeur de la variable de statutsuper_read_only_disk_full
à l'aide de l'une des commandes suivantes :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';
Les variables système modifient le comportement de MySQL Server, tandis que les variables de statut sont des indicateurs statiques de l'état de MySQL Server.
Récupération en fonctionnement normal
Une fois les paramètres SUPER_READ_ONLY
et OFFLINE_MODE
définis, Health Monitor effectue les opérations suivantes :
- Vérifiez l'espace disque toutes les minutes .
- Définissez
OFFLINE_MODE=OFF
si l'espace disque disponible est récupéré et reste supérieur àdisk_recovery_level
pendantdisk_recovery_time_1
secondes ou plus. - Définissez
SUPER_READ_ONLY=OFF
si l'espace disque disponible est récupéré et reste au-dessus dedisk_recovery_level
pendant au moinsdisk_recovery_time_2
secondes.
Les opérations normales reprennent une fois que l'espace disque reste supérieur à disk_recovery_level
pendant disk_recovery_time_1
+ disk_recovery_time_2
secondes.
Une fois l'espace disque récupéré, Health Monitor efface les variables système, SUPER_READ_ONLY
et OFFLINE_MODE
, ainsi que la variable de statut, super_read_only_disk_full
. Vous n'avez pas besoin de redémarrer l'instance MySQL pour effacer les variables.
En cas de manque important ou soutenu d'espace disque à nouveau, Health Monitor définit à nouveau les variables système SUPER_READ_ONLY
et OFFLINE_MODE
, ainsi que la variable de statut super_read_only_disk_full
sur ON dans MySQL Server.
Avant de remettre une instance principale d'un système de base de données haute disponibilité en mode de fonctionnement normal, Health Monitor vérifie que le serveur est en ligne avec la majorité du groupe. Health Monitor ne définit jamais SUPER_READ_ONLY
ni OFFLINE_MODE
sur les instances secondaires.
Incrément de récupération, cycle maximal de récupération et fenêtre de récupération
Chaque fois que MySQL Server récupère suite à une pénurie importante ou prolongée d'espace disque, Health Monitor augmente le temps de récupération du disque de disk_recovery_increment
secondes.
Par exemple, si disk_recovery_time_1
= 300 secondes, disk_recovery_time_2
= 600 secondes et disk_recovery_increment
= 400 secondes, le temps de récupération sur disque pour chaque cycle est le suivant :
- Cycle 1 :
disk_recovery_time_1
= 300 secondes,disk_recovery_time_2
= 600 secondes - Cycle 2 :
disk_recovery_time_1
= (300 + 400) secondes,disk_recovery_time_2
= (600 + 400) secondes - Cycle 3 :
disk_recovery_time_1
= (300 + 400 + 400) secondes,disk_recovery_time_2
= (600 + 400 + 400) secondes
L'outil de surveillance de l'état restaure en mode de fonctionnement normal un maximum de disk_recovery_max_cycles
fois dans une fenêtre fixe de disk_recovery_window
secondes, à partir du dernier cycle de récupération. Par exemple, si disk_recovery_max_cycles
est défini sur 5 et que disk_recovery_window
est défini sur 86 400 secondes (1 jour), Health Monitor peut rétablir le mode de fonctionnement normal cinq fois dans une fenêtre de 86 400 secondes. Si une pénurie importante ou prolongée se produit la sixième fois dans la même fenêtre, les variables système SUPER_READ_ONLY
et OFFLINE_MODE
sont définies sur ON.
Le nombre de récupérations est réinitialisé après disk_recovery_window
secondes à partir de la dernière récupération.
Avertissements de mémoire
Lorsque la mémoire disponible est inférieure à certains seuils, Health Monitor émet les avertissements suivants :
WARNING_MEMORY_USAGE_LEVEL_1
: lorsque la mémoire disponible est inférieure à 1024 MiB.WARNING_MEMORY_USAGE_LEVEL_2
: lorsque la mémoire disponible est inférieure à 500 MiB.WARNING_MEMORY_USAGE_LEVEL_3
: lorsque la mémoire disponible est inférieure à 100 MiB.
Health Monitor consigne dans le journal d'erreurs les informations relatives à la version MySQL, à l'utilisation globale de la mémoire et aux différents paramètres de configuration. Les informations sont consignées sous forme de valeurs séparées par des virgules pour faciliter le transfert dans une feuille de calcul en vue d'une analyse plus approfondie.
Consulter les tables du moniteur d'état
Les tables Health Monitor stockent les données et les statistiques de surveillance dans le schéma de performances de MySQL Server.
Les tables d'intégrité contiennent des informations relatives au stockage sur disque, à la mémoire système et à la mémoire de processus.
Les tables de statistiques contiennent des statistiques relatives à l'utilisation de l'UC système, à l'utilisation du disque, à l'utilisation de la mémoire et au processus serveur MySQL (mysqld
). Chaque table de statistiques comporte deux versions, une version à la demande, qui est renseignée avec les relevés en cours lorsque vous l'interrogez, et une version d'historique pour laquelle Health Monitor prélève des échantillons une fois par minute et conserve la valeur des données d'une journée. Les deux versions de la table ont les mêmes colonnes.
Utilisation d'un client de ligne de commande
Utilisez un client de ligne de commande tel que le client MySQL ou le shell MySQL pour afficher les tables Health Monitor.
- Client de ligne de commande tel que le shell MySQL connecté au système de base de données. Reportez-vous à Connexion à un système de base de données.
+-------------------------+---------------------+-------------+-----------------+-------------+-------------+
| 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 |
Tables du moniteur d'état
Reportez-vous aux tables Health Monitor pour consulter les informations relatives au stockage sur disque, à la mémoire système et aux processus de mémoire.
La liste complète des tables Health Monitor est la suivante :
performance_schema.health_block_device
: informations sur le statut du stockage sur disque.performance_schema.health_system_memory
: informations sur l'état de la mémoire système.performance_schema.health_process_memory
: informations sur le statut de la mémoire de traitement.performance_schema.system_cpu_stats
: statistiques d'utilisation de l'UC, renseignées à la demande.performance_schema.system_cpu_stats_history
: statistiques d'utilisation de l'UC stockée.performance_schema.system_disk_stats
: statistiques d'utilisation du disque, renseignées à la demande.performance_schema.system_disk_stats_history
: statistiques d'utilisation du disque stocké.performance_schema.system_memory_stats
: statistiques d'utilisation de la mémoire, renseignées à la demande.performance_schema.system_memory_stats_history
: statistiques d'utilisation de la mémoire stockée.performance_schema.system_process_stats
: statistiques de processus et de thread, renseignées à la demande.performance_schema.system_process_stats_history
: statistiques de processus et de thread stockées.performance_schema.error_log
: avertissements et erreurs. Reportez-vous à Visualisation du journal des erreurs.
Table performance_schema.health_block_device
Health Monitor utilise la table performance_schema.health_block_device
du schéma de performances de MySQL Server pour stocker les données sur l'espace disque utilisé et disponible dans un système de base de données.
Tableau 17-1 Table de schéma de performance health_block_device
Colonne | Description : |
---|---|
DEVICE |
Nom de périphérique du disque. |
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette ligne a été collecté. |
TOTAL_BYTES |
Quantité totale de stockage sur le périphérique (en octets). |
AVAILABLE_BYTES |
Quantité de stockage disponible sur le périphérique (en octets). |
USE_PERCENT |
Pourcentage d'espace disque utilisé. |
MOUNT_POINT |
Point de montage du périphérique. |
Table performance_schema.health_system_memory
Health Monitor utilise la table performance_schema.health_system_memory
du schéma de performances de MySQL Server pour stocker les données sur l'utilisation de la mémoire par le système de base de données
Tableau 17-2 Table de schéma de performance health_system_memory
Colonne | Description : |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette ligne a été collecté. |
TOTAL_MEMORY |
Quantité totale de mémoire pour le système, en octets. |
AVAILABLE |
Mémoire disponible pour démarrer de nouvelles applications sans échange, en octets. |
USE_PERCENT |
Pourcentage de mémoire en cours d'utilisation. |
MEMORY_FREE |
Quantité de mémoire inutilisée. |
MEMORY_FS_CACHE |
Cache de page du système de fichiers. |
SWAP_TOTAL |
Quantité totale de mémoire de swap. |
SWAP_FREE |
Quantité totale de mémoire de swap libre. |
Table performance_schema.health_process_memory
Health Monitor utilise la table performance_schema.health_process_memory
du schéma de performances de MySQL Server pour stocker les données sur l'utilisation de la mémoire par le processus MySQL Server (mysqld) dans le système de base de données.
Tableau 17-3 Table de schéma de performance health_process_memory
Colonne | Description : |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette ligne a été collecté. |
PROCESS_NAME |
Nom du processus MySQL Server. |
PID |
Identificateur système du processus MySQL Server. |
VM_RSS |
Taille du jeu résident du processus de serveur MySQL, en octets. |
VM_DATA |
Taille du segment de données du processus MySQL Server (en octets). |
VM_SWAP |
Taille du segment de swap du processus de serveur MySQL (en octets). |
PAGE_FAULTS |
Nombre d'erreurs de page nécessitant des E/S disque. |
Table performance_schema.system_cpu_stats
Health Monitor collecte des statistiques sur l'utilisation de l'UC par le système de base de données. Les statistiques sont disponibles dans deux tables du schéma de performances de MySQL Server, une table à la demande et une table d'historique correspondante. Les deux tables ont les mêmes colonnes.
La table performance_schema.system_cpu_stats
du schéma de performances de MySQL Server est remplie avec un échantillon de données lorsque vous l'interrogez. La table performance_schema.system_cpu_stats_history
stocke régulièrement des exemples de données.
Les statistiques de ces tables proviennent du fichier système Linux /proc/stat
.
Tableau 17-4 Tables des schémas de performance system_cpu_stats et system_cpu_stats_history
Colonne | Description : |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette ligne a été collecté. |
CPU |
La ligne d'UC affiche les données d'utilisation agrégées de l'UC, et chaque ligne numérotée (par exemple, cpu0, cpu1) affiche les données d'un processus individuel. Toutes les durées sont en millisecondes. |
USER_MS |
Temps passé en mode utilisateur. |
NICE_MS |
Temps passé en mode utilisateur avec une priorité faible. |
SYSTEM_MS |
Temps passé en mode système. |
IDLE_MS |
Temps passé dans la tâche inactive. |
IOWAIT_MS |
Temps passé à attendre la fin des E/S. |
IRQ_MS |
Temps consacré à la maintenance des interruptions matérielles. |
SOFTIRQ_MS |
Le temps consacré à la maintenance des logiciels s'interrompt. |
STEAL_MS |
Temps passé à exécuter d'autres systèmes d'exploitation dans un environnement virtualisé. |
GUEST_MS |
Temps passé à exécuter une CPU virtuelle avec une priorité normale. |
GUEST_NICE_MS |
Temps passé à exécuter une CPU virtuelle avec une priorité faible. |
Table performance_schema.system_disk_stats
Health Monitor collecte des statistiques sur l'utilisation du disque par le système de base de données. Les statistiques sont disponibles dans deux tables du schéma de performances de MySQL Server, une table à la demande et une table d'historique correspondante. Les deux tables ont les mêmes colonnes.
La table performance_schema.system_disk_stats
du schéma de performances de MySQL Server est remplie avec un échantillon de données lorsque vous l'interrogez. La table performance_schema.system_disk_stats_history
stocke régulièrement des exemples de données.
Les statistiques de ces tables proviennent du fichier système Linux /proc/diskstats
.
Tableau 17-5 Tables des schémas de performance system_disk_stats et system_disk_stats_history
Colonne | Description : |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette ligne a été collecté. |
DEVICE |
Nom du périphérique pour ce disque. |
READS |
Nombre de lectures terminées. |
READ_BYTES |
Nombre d'octets lus. |
READ_TIME_MS |
Temps passé à lire, en millisecondes. |
WRITES |
Nombre d'écritures terminées. |
WRITE_BYTES |
Nombre d'octets écrits. |
WRITE_TIME_MS |
Temps passé à écrire, en millisecondes. |
FLUSHES |
Le nombre de demandes de vidage a réussi. |
FLUSH_TIME_MS |
Temps de vidage, en millisecondes. |
Table performance_schema.system_memory_stats
Health Monitor collecte des statistiques sur l'utilisation de la mémoire par le système de base de données. Les statistiques sont disponibles dans deux tables du schéma de performances de MySQL Server, une table à la demande et une table d'historique correspondante. Les deux tables ont les mêmes colonnes.
La table performance_schema.system_memory_stats
du schéma de performances de MySQL Server est remplie avec un échantillon de données lorsque vous l'interrogez. La table performance_schema.system_memory_stats_history
stocke régulièrement des exemples de données.
Les statistiques de ces tables proviennent du fichier système Linux /proc/meminfo
.
Tableau 17-6 Tables des schémas de performance system_memory_stats et system_memory_stats_history
Colonne | Description : |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette ligne a été collecté. |
TOTAL_BYTES |
Mémoire système utilisable totale, en octets. |
FREE_BYTES |
La mémoire non utilisée. |
USED_BYTES |
Mémoire totale utilisée. |
AVAILABLE_BYTES |
Mémoire estimée disponible pour le démarrage de nouvelles applications, en octets. |
BUFFER_BYTES |
Quantité de mémoire utilisée pour le stockage temporaire des blocs de disque brut. |
CACHED_BYTES |
Quantité de mémoire utilisée pour mettre en cache les fichiers lus à partir du disque (cache de page). |
SLAB_BYTES |
Quantité de mémoire utilisée pour mettre en cache les structures de données dans le noyau. |
SWAP_TOTAL_BYTES |
Quantité totale d'espace de swap disponible sur le disque. |
SWAP_FREE_BYTES |
Quantité totale d'espace de swap actuellement inutilisée. |
SWAP_USED_BYTES |
Quantité totale de mémoire qui a été échangée à partir de la RAM et qui est temporairement sur le disque. |
SWAP_IN |
Quantité de mémoire permutée vers la mémoire RAM à partir du disque, en ko par seconde. |
SWAP_OUT |
Quantité de mémoire échangée vers le disque à partir de la RAM, en ko par seconde. |
Table performance_schema.system_process_stats
Health Monitor collecte des statistiques pour chaque thread utilisé par le processus MySQL Server dans le système de base de données. Les statistiques sont disponibles dans deux tables du schéma de performances de MySQL Server, une table à la demande et une table d'historique correspondante. Les deux tables ont les mêmes colonnes.
La table performance_schema.system_process_stats
du schéma de performances de MySQL Server est remplie avec un échantillon de données lorsque vous l'interrogez. La table performance_schema.system_process_stats_history
stocke régulièrement des exemples de données.
Pour les statistiques de processus, la table à la demande renvoie une ligne pour chaque thread utilisé par le processus mysqld
. Cependant, la table d'historique stocke une seule ligne pour chaque échantillon, avec les totaux agrégés pour tous les threads utilisés par le processus mysqld
.
Les statistiques de ces tables proviennent du fichier système Linux /proc/self/task/[pid]/stat
.
Tableau 17-7 Tables des schémas de performance system_process_stats et system_process_stats_history
Colonne | Description : |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette ligne a été collecté. |
PID |
ID de processus. |
PROCESS_NAME |
Nom du processus, à savoir mysqld .
|
TID |
ID de thread pour chaque thread affiché sur cette ligne. |
THREAD_NAME |
Nom du thread instrumenté pour le thread individuel affiché sur cette ligne. |
STATE |
Caractère indiquant l'état du thread au moment de l'échantillon : en cours d'exécution (R ), en veille dans une attente interruptible (S ), en attente de mise en veille sur disque sans interruption (D ), thread zombie (Z ), arrêté sur un signal ou une trace arrêté (T ), pagination (W ), mort (X ), wakekill (K ), réveil (W ) ou mis en attente (P ).
|
UTIME_MS |
Temps passé par ce thread en mode utilisateur, en millisecondes. |
STIME_MS |
Temps passé par ce thread en mode noyau, en millisecondes. |
CUTIME_MS |
Temps passé par les processus enfant de ce processus en mode utilisateur, en millisecondes. |
CSTIME_MS |
Temps passé par les processus enfant de ce processus en mode noyau, en millisecondes. |
NUM_THREADS |
Le numéro des fils dans ce processus. |
VSIZE_BYTES |
Taille de la mémoire virtuelle en octets. |
RSS_BYTES |
Nombre d'octets dont dispose le processus dans la mémoire réelle (taille résidente définie). |
RSSLIM_BYTES |
Limite en octets de la taille résidente définie du processus. |
PROCESSOR |
Numéro de CPU sur lequel le thread a été exécuté pour la dernière fois. |
DELAYACCT_BLKIO_MS |
Retards d'E/S de bloc agrégés, en millisecondes. |
GUEST_TIME_MS |
Temps invité du processus, en millisecondes. |
CGUEST_TIME_MS |
Temps invité pour les processus enfant du processus, en millisecondes. |
READ_BYTES |
Nombre d'octets extraits par ce processus de la couche de stockage. |
WRITE_BYTES |
Nombre d'octets envoyés par ce processus à la couche de stockage. |
Afficher les variables Health Monitor
Les variables Health Monitor sont des paramètres de configuration de l'activité de surveillance dans le système de base de données. Vous ne pouvez pas modifier les valeurs de ces variables.
Utilisation d'un client de ligne de commande
Utilisez un client de ligne de commande tel que le client MySQL ou le shell MySQL pour visualiser les variables de surveillance de l'état et leurs valeurs.
- Système de base de données en cours d'exécution.
- Client de ligne de commande tel que le client MySQL ou le shell MySQL connecté au système de base de données. Reportez-vous à Connexion à un système de base de données.
+----------------------------------------------+-------+
| 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)
Variables de l'outil de surveillance de l'état
Toutes les variables système de Health Monitor sont préfixées par health_monitor
. Vous ne pouvez pas modifier les valeurs des variables à partir de leurs valeurs par défaut dans un système de base de données.
Le préfixe
health_monitor.
ne figure pas dans le tableau ci-après. Par exemple, disk_fallback_enable
est en fait health_monitor.disk_fallback_enable
.
Tableau 17-8 Variables système de l'outil de surveillance de l'état
Variable système | Valeur par défaut | Description : |
---|---|---|
disk_fallback_enable |
ON | En cas de pénurie importante ou prolongée d'espace disque, Health Monitor définit la variable système SUPER_READ_ONLY et OFFLINE_MODE sur ON dans MySQL Server.
|
disk_fallback_force |
OFF | Mettez fin aux requêtes de premier plan qui contiennent des verrous de métadonnées globaux et réessayez de définir SUPER_READ_ONLY .
|
disk_low_space_critical_level |
2 000 | Seuil d'espace disque minimal critique dans MiB. Si l'espace disque disponible est inférieur à cette valeur pour une durée quelconque, Health Monitor définit les modes SUPER_READ_ONLY et OFFLINE_MODE sur MySQL Server.
|
disk_low_space_duration |
300 | Durée (en secondes) pendant laquelle l'espace disque disponible peut rester inférieur à disk_low_space_level ou à disk_low_space_percent (selon la valeur la plus basse) avant que Health Monitor ne définisse les modes SUPER_READ_ONLY et OFFLINE_MODE sur MySQL Server.
|
disk_low_space_level |
5 000 | Seuil d'espace faible pour la réserve de stockage, dans MiB. Si l'espace disque disponible est inférieur à ce pourcentage de stockage disponible total pendant plus longtemps que la valeur disk_low_space_duration , Health Monitor définit les modes SUPER_READ_ONLY et OFFLINE_MODE sur MySQL Server.
|
disk_low_space_percent |
4 | Seuil d'espace faible pour la réserve de stockage, exprimé en pourcentage. Si l'espace disque disponible est inférieur à ce pourcentage de stockage disponible total pendant plus longtemps que la valeur disk_low_space_duration , Health Monitor définit les modes SUPER_READ_ONLY et OFFLINE_MODE sur MySQL Server.
|
disk_monitored |
/db | Point de montage des statistiques de disque. |
disk_retention |
86 400 |
Nombre de secondes pendant lesquelles chaque échantillon de données est conservé dans les tables d'historique pour les données d'utilisation du disque. La valeur minimale est de 1 seconde, la valeur par défaut est de 86400 secondes (1 jour) et la valeur maximale est de 864000 secondes (10 jours). Si |
disk_recovery_enable |
ON | Définissez la variable sur ON pour permettre la récupération suite à une pénurie prolongée ou importante et sur OFF pour désactiver la récupération suite à une pénurie prolongée ou importante. |
disk_recovery_level |
5% | Pourcentage d'espace disque total au-dessus de la réserve de stockage.
|
disk_recovery_time_1 |
300 secondes | Durée (en secondes) pendant laquelle le stockage disponible doit rester au-dessus de disk_recovery_level avant que l'outil de surveillance de l'état ne définisse OFFLINE_MODE = OFF .
|
disk_recovery_time_2 |
300 secondes | Délai supplémentaire (en secondes) pendant lequel le stockage disponible doit rester au-dessus de disk_recovery_level après disk_recovery_time_1 avant que l'outil de surveillance de l'état ne définisse SUPER_READ_ONLY = OFF .
|
disk_recovery_max_cycles |
3 cycles | Nombre maximal de fois où le serveur MySQL peut être remis en mode de fonctionnement normal au cours de la période disk_recovery_cycle_window .
|
disk_recovery_window |
86400 secondes | Durée (en secondes) après le dernier cycle de récupération réussi après laquelle le nombre de récupérations est réinitialisé. La valeur 0 signifie que le nombre de récupérations n'est jamais réinitialisé. |
disk_recovery_increment |
300 secondes | Temps (en secondes) nécessaire pour augmenter les horloges de récupération disk_recovery_time_1 et disk_recovery_time_2 pour chaque cycle de récupération.
|
disk_running |
ON | Etat actif de la surveillance de disque de l'état. |
disk_sample_rate |
60 | Fréquence de collecte des données de disque, en secondes. Par défaut, les données sont collectées toutes les 60 secondes. Le taux d'échantillonnage minimal est de 1 (chaque seconde) et le taux maximal est de 86400 (une fois par jour). |
disk_usage_warning_level_1 |
20 | Pourcentage d'espace disque disponible supérieur à la valeur disk_low_space_level définie. Si l'espace disque disponible est inférieur à ce niveau, l'avertissement WARNING_DISK_USAGE_LEVEL_1 est déclenché.
|
disk_usage_warning_level_2 |
10 | Pourcentage d'espace disque disponible, supérieur à la valeur disk_low_space_level définie. Si l'espace disque disponible est inférieur à ce niveau, l'avertissement WARNING_DISK_USAGE_LEVEL_2 est déclenché.
|
disk_usage_warning_level_3 |
5 | Pourcentage d'espace disque disponible, supérieur à la valeur disk_low_space_level définie. Si l'espace disque disponible est inférieur à ce niveau, l'avertissement WARNING_DISK_USAGE_LEVEL_3 est déclenché.
|
memory_reporting |
ON | Permet de générer des états sur les données de mémoire. |
memory_retention |
86 400 |
Nombre de secondes pendant lesquelles chaque échantillon de données est conservé dans les tables d'historique pour les données d'utilisation de la mémoire. La valeur minimale est de 1 seconde, la valeur par défaut est de 86400 secondes (1 jour) et la valeur maximale est de 864000 secondes (10 jours). |
memory_running |
ON | Etat actif de la surveillance de mémoire de l'outil de surveillance de l'état. |
memory_sample_rate |
60 | Fréquence de collecte des données de mémoire, en secondes. Par défaut, les données sont collectées toutes les 60 secondes. Le taux d'échantillonnage minimal est de 1 (chaque seconde) et le taux maximal est de 86400 (une fois par jour). |
memory_usage_warning_level_1 |
1 024 | Quantité de mémoire disponible (MiB). Si la mémoire disponible est inférieure à ce niveau, l'avertissement WARNING_MEMORY_USAGE_LEVEL_1 est déclenché.
|
memory_usage_warning_level_2 |
500 | Quantité de mémoire disponible (MiB). Si la mémoire disponible est inférieure à ce niveau, l'avertissement WARNING_MEMORY_USAGE_LEVEL_2 est déclenché.
|
memory_usage_warning_level_3 |
100 | Quantité de mémoire disponible (MiB). Si la mémoire disponible est inférieure à ce niveau, l'avertissement WARNING_MEMORY_USAGE_LEVEL_3 est déclenché.
|
status_interval |
10 | Fréquence (en multiples de disk_sample_rate ) d'envoi des messages de statut à la table de journalisation des erreurs. Par exemple, si status_interval = 10 et disk_sample_rate = 60 secondes, l'outil de surveillance de l'état envoie un message de statut à la table de journalisation des erreurs toutes les 600 secondes.
|
system_cpu_stats_history |
ON | Indique si les statistiques d'utilisation de l'UC système sont collectées et stockées dans la table de schéma de performances system_cpu_stats_history . Si ces statistiques ne sont pas stockées, vous pouvez toujours accéder à un cliché à la demande en interrogeant la table system_cpu_stats .
|
system_disk_stats_history |
ON | Indique si les statistiques d'utilisation du disque système sont collectées et stockées dans la table de schéma de performances system_memory_stats_history . Si ces statistiques ne sont pas stockées, vous pouvez toujours accéder à un cliché à la demande en interrogeant la table system_memory_stats .
|
system_memory_stats_history |
ON | Indique si les statistiques d'utilisation de la mémoire système sont collectées et stockées dans la table de schéma de performances system_disk_stats_history . Si ces statistiques ne sont pas stockées, vous pouvez toujours accéder à un cliché à la demande en interrogeant la table system_disk_stats .
|
system_process_stats_history |
ON | Indique si les statistiques de processus serveur MySQL (mysqld ) sont collectées et stockées dans la table de schéma de performances system_process_stats_history . Si ces statistiques ne sont pas stockées, vous pouvez toujours accéder à un cliché à la demande en interrogeant la table system_process_stats .
|
system_retention |
86 400 |
Nombre de secondes pendant lesquelles chaque échantillon de données est conservé dans les tables d'historique pour les statistiques système et de processus. La valeur minimale est de 1 seconde, la valeur par défaut est de 86400 secondes (1 jour) et la valeur maximale est de 864000 secondes (10 jours). |
system_running |
ON | Indique si les statistiques système sont collectées par Health Monitor. Lorsque cette valeur est définie sur ON , les tables de statistiques relatives à l'utilisation de l'UC système, à l'utilisation du disque, à l'utilisation de la mémoire et au processus serveur MySQL (mysqld ) sont disponibles, et les tables d'historique correspondantes sont remplies si leurs variables système sont définies sur ON .
|
system_sample_rate |
60 | Fréquence de collecte des statistiques système, en secondes. Par défaut, les données sont collectées toutes les 60 secondes. Le taux d'échantillonnage minimal est de 1 (chaque seconde) et le taux maximal est de 86400 (une fois par jour). |
Messages de l'outil de surveillance de l'état
Les erreurs, les avertissements et les mises à jour de statut de l'outil de surveillance de l'état sont consignés dans performance_schema.error_log
. Health Monitor abrége TiB en T, GiB en G et MiB en M dans le journal d'erreurs. Par exemple, 306.6G = 306,6 GiB = 329,2 Go.
Tableau 17-9 Messages de l'outil de surveillance de l'état
Type de message | Description : |
---|---|
Mise à jour de statut | L'outil de surveillance de l'état émet une mise à jour de statut de routine conformément au nombre de secondes défini par sample_rate * status_interval . Exemples :
|
Avertissement lié à un seuil | Si la quantité d'espace disponible est inférieure à l'un des seuils définis par disk_usage_warning_level_* , Health Monitor émet un avertissement. L'exemple suivant affiche l'avertissement du seuil disk_usage_warning_level_2 , défini à 4 % de l'espace total au-dessus de la limite d'espace faible :
|
Avertissement lié à disk_low_space_duration
|
Si l'espace disque disponible tombe en dessous de la limite inférieure d'espace de 18 GiB, Health Monitor démarre l'horloge de restauration et émet un avertissement. Exemples :
|
Avertissement lié au mode OFFLINE/SUPER_READ_ONLY
|
Si l'espace disque disponible reste inférieur à la limite d'espace faible pendant plus de disk_low_space_duration secondes, l'outil de surveillance de l'état place le serveur dans SUPER_READ_ONLY et OFFLINE_MODE . Exemples : Reportez-vous à Résolution des problèmes SUPER_READ_ONLY et OFFLINE_MODE causés par un faible espace de stockage libre.
|
Avertissement critique | Si l'espace disque disponible descend en dessous de disk_low_space_critical_level quelle que soit la durée, l'outil de surveillance de l'état met le serveur en mode SUPER_READ_ONLY . Exemples :
|
Avertissement d'annulation d'horloge | Si l'espace disponible repasse au-dessus de la limite d'espace faible avant la fin du délai disk_low_space_duration (en secondes), l'horloge du mode de basculement est annulée et l'outil de surveillance de l'état émet un message de statut, ou d'avertissement si l'espace disponible se trouve toujours dans la plage d'avertissement. Exemples :[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 |
Avertissement de mémoire | Si la mémoire disponible est inférieure à l'un des seuils définis par memory_usage_warning_level_* , Health Monitor émet un avertissement qui inclut les détails de diagnostic de la mémoire dans des valeurs séparées par des virgules (csv). Les données CSV de l'exemple suivant ont été supprimées en raison d'une contrainte d'espace. [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>... |
Rubriques connexes