Moniteur d'état
Le moniteur d'état collecte des statistiques sur l'utilisation de l'UC système, l'utilisation du disque, l'utilisation de la mémoire et le processus serveur MySQL (mysqld
). Les statistiques sont consignées dans des tables d'historique, pour lesquelles le moniteur d'état prélève des échantillons une fois par minute et conserve une valeur journalière de données. Vous pouvez également accéder à ces statistiques dans des tables qui sont alimentées avec des lectures courantes sur demande lorsque vous les interrogez.
Aperçu du moniteur d'état
Le moniteur d'état échantillonne les informations sur l'espace disque, les informations sur la mémoire système et les informations sur la mémoire de traitement toutes les soixante secondes, et stocke une journée de données dans des tables du schéma de performance de MySQL Server. Si l'espace disque disponible ou la mémoire disponible tombe en dessous de certains seuils prédéfinis, le moniteur d'état émet des avertissements et le 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 : Espace disque dans la réserve de stockage inférieur au seuil critique, qui est 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 2 000 MiB.
Avertissements relatifs à l'espace disque
Lorsque l'espace disque est inférieur à un certain pourcentage du stockage disponible, le moniteur d'état émet les avertissements suivants et le consigne dans la table performance_schema.error_log
:
WARNING_DISK_USAGE_LEVEL_1
: Lorsque l'espace disque tombe en dessous de 20 % du stockage disponible.WARNING_DISK_USAGE_LEVEL_2
: Lorsque l'espace disque tombe en dessous de 10 % du stockage disponible.WARNING_DISK_USAGE_LEVEL_3
: Lorsque l'espace disque tombe en dessous de 5 % du stockage disponible.
Par exemple, si le stockage total est de 100 000 MiB et que la réserve de stockage est moindre des 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, c'est-à-dire 4 % de 100 000 MiB = 4 000 MiB.
La réserve de stockage est de 4 000 MiB, ce qui est le moins élevé des 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
Le moniteur d'état émet les avertissements suivants :
WARNING_DISK_USAGE_LEVEL_1
: Lorsque l'espace disque tombe en dessous de 20 % du stockage disponible, soit 20/100*96 000 = 19 200 MiB.WARNING_DISK_USAGE_LEVEL_2
: Lorsque l'espace disque tombe en dessous de 10 % du stockage disponible, soit 10/100*96 000 = 9 600 MiB.WARNING_DISK_USAGE_LEVEL_3
: Lorsque l'espace disque tombe en dessous de 5 % du stockage disponible, soit 5/100*96 000 = 4 800 MiB.
Pénurie importante ou soutenue d'espace disque
Le moniteur d'état définit une pénurie importante ou soutenue d'espace disque lorsque les conditions suivantes sont remplies :
- Pénurie importante : L'espace disque passe en dessous du seuil critique défini par
disk_low_space_critical_level
. - Pénurie soutenue : L'espace disque passe sous la réserve de stockage, puis reste dans la réserve de stockage pour la durée définie par la variable de configuration
disk_low_space_duration
.
Lorsqu'il y a une pénurie importante ou soutenue d'espace disque, Health Monitor effectue les opérations suivantes :
SUPER_READ_ONLY=ON
: Règle les variables de système,SUPER_READ_ONLY
, à ON dans MySQL Server. MySQL Server rejette tous les nouveaux énoncés d'écriture SQL entrants (UPDATE
,INSERT
,DELETE
etDDL
), quels que soient les utilisateurs et les privilèges. Les transactions en cours d'exécution sont autorisées, mais les nouvelles écritures sont interdites jusqu'à ce que l'espace disque soit de nouveau disponible. Vous ne pouvez pas charger de données dans la grappe HeatWave lorsque le serveur est en modeSUPER_READ_ONLY
.Dans certains cas, les verrous de lecture globaux, les validations en cours ou les verrous de métadonnées empêchent le moniteur d'état de définir la variable de système
SUPER_READ_ONLY
. Dans ce cas, si vous définissez la variablehealth_monitor.disk_fallback_force
, le moniteur d'état identifie et met fin aux interrogations actives contenant des verrous globaux pour définir la variable de systèmeSUPER_READ_ONLY
.OFFLINE_MODE=ON
: Règle la variable de systèmeOFFLINE_MODE
à ON dans MySQL Server. MySQL Server déconnecte les utilisateurs clients qui n'ont pas le privilègeCONNECTION_ADMIN
, arrête les énoncés en cours d'exécution et libère les verrouillages, et bloque les nouvelles connexions avec une erreur appropriée.super_read_only_disk_full=ON
: Règle la variable de statutsuper_read_only_disk_full
à ON pour indiquer que le mode de lecture seule a été déclenché en raison d'un faible espace disque. Vous pouvez voir la valeur de la variable de statutsuper_read_only_disk_full
avec 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 de système modifient le comportement de MySQL Server tandis que les variables de statut sont des indicateurs statiques de l'état de MySQL Server.
Reprise à l'opération normale
Une fois que SUPER_READ_ONLY
et OFFLINE_MODE
sont définis, le moniteur d'état 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 au-dessus dedisk_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
pendantdisk_recovery_time_2
secondes ou plus.
Les opérations normales sont reprises une fois que l'espace disque reste au-dessus de disk_recovery_level
pendant disk_recovery_time_1
+ disk_recovery_time_2
secondes.
Une fois l'espace disque récupéré, le moniteur d'état efface les variables de système, SUPER_READ_ONLY
et OFFLINE_MODE
, et 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 nouvelle pénurie importante ou soutenue d'espace disque, le moniteur d'état règle à nouveau les variables de système, SUPER_READ_ONLY
et OFFLINE_MODE
, et la variable de statut, super_read_only_disk_full
, à ON dans MySQL Server.
Avant de retourner une instance principale d'un système de base de données à haute disponibilité en mode de fonctionnement normal, le moniteur d'état vérifie que le serveur est en ligne avec la majorité du groupe. Le moniteur d'état ne définit jamais SUPER_READ_ONLY
ou 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 se rétablit en raison d'une pénurie importante ou soutenue d'espace disque, le moniteur d'état augmente le temps de récupération de disque de disk_recovery_increment
secondes.
Par exemple, si disk_recovery_time_1
= 300 secondes, et disk_recovery_time_2
= 600 secondes, et disk_recovery_increment
= 400 secondes, le temps de récupération de 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
Le moniteur d'état restaure en mode de fonctionnement normal disk_recovery_max_cycles
fois au maximum 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 réglé à 5 et que disk_recovery_window
est réglé à 86 400 secondes (1 jour), le moniteur d'état peut rétablir le mode de fonctionnement normal cinq fois dans une fenêtre de 86 400 secondes. Si une pénurie importante ou soutenue se produit la sixième fois dans la même fenêtre, les variables de système, SUPER_READ_ONLY
et OFFLINE_MODE
sont réglées à 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 tombe en dessous de certains seuils, le moniteur d'état é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.
Le moniteur d'état enregistre les informations concernant la version de MySQL, l'utilisation globale de la mémoire et divers paramètres de configuration dans le journal des erreurs. Les informations sont enregistrées sous forme de valeurs séparées par des virgules pour faciliter leur transfert dans une feuille de calcul aux fins d'analyse.
Consultation des tables du moniteur d'état
Les tables du moniteur d'état stockent les données et les statistiques de surveillance dans le schéma de performance de MySQL Server.
Les tables d'état contiennent des informations sur le stockage sur disque, des informations sur la mémoire système et des informations sur la mémoire de processus.
Les tables de statistiques contiennent des statistiques sur l'utilisation de l'UC système, l'utilisation du disque, l'utilisation de la mémoire et le processus serveur MySQL (mysqld
). Chaque table de statistiques comporte deux versions, une version à la demande, qui est alimentée avec les lectures courantes lorsque vous l'interrogez, et une version d'historique pour laquelle le moniteur d'état 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 l'interpréteur de commandes MySQL pour voir les tables du moniteur d'état.
- Client de ligne de commande tel que l'interpréteur de commandes MySQL connecté au système de base de données. Voir 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 du moniteur d'état pour voir les informations relatives au stockage sur disque, à la mémoire système et à la mémoire de processus.
La liste complète des tables du moniteur d'état est la suivante :
performance_schema.health_block_device
: Informations sur le statut du stockage sur disque.performance_schema.health_system_memory
: Informations de statut de la mémoire du système.performance_schema.health_process_memory
: Informations de statut de la mémoire du processus.performance_schema.system_cpu_stats
: Statistiques d'utilisation d'UC, alimentées sur demande.performance_schema.system_cpu_stats_history
: Statistiques d'utilisation d'UC stockées.performance_schema.system_disk_stats
: Statistiques sur l'utilisation du disque, alimentées sur demande.performance_schema.system_disk_stats_history
: Statistiques sur l'utilisation des disques stockés.performance_schema.system_memory_stats
: Statistiques d'utilisation de la mémoire, alimentées sur demande.performance_schema.system_memory_stats_history
: Statistiques d'utilisation de la mémoire stockée.performance_schema.system_process_stats
: Statistiques sur les processus et les unités d'exécution, alimentées sur demande.performance_schema.system_process_stats_history
: Statistiques sur les processus et les unités d'exécution stockées.performance_schema.error_log
: Avertissements et erreurs. Voir Consultation du journal des erreurs.
Table performance_schema.health_block_device
Le moniteur d'état utilise la table performance_schema.health_block_device
du schéma de performance de MySQL Server pour stocker des données sur l'espace disque utilisé et disponible dans un système de base de données.
Tableau 17-1 health_block_device Table de schéma de performance
Colonne | Description |
---|---|
DEVICE |
Nom du périphérique du disque. |
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette rangée a été collecté. |
TOTAL_BYTES |
Quantité totale de stockage sur le périphérique, en octets. |
AVAILABLE_BYTES |
Quantité de stockage disponible sur l'appareil, en octets. |
USE_PERCENT |
Pourcentage d'espace disque utilisé. |
MOUNT_POINT |
Point de montage de l'appareil. |
Table performance_schema.health_system_memory
Le moniteur d'état utilise la table performance_schema.health_system_memory
du schéma de performance 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 health_system_memory Table de schéma de performance
Colonne | Description |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette rangée 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 permutation, en octets. |
USE_PERCENT |
Pourcentage de mémoire utilisée. |
MEMORY_FREE |
Quantité de mémoire inutilisée. |
MEMORY_FS_CACHE |
Mémoire cache de la page du système de fichiers. |
SWAP_TOTAL |
Quantité totale de mémoire de permutation. |
SWAP_FREE |
Quantité totale de mémoire de permutation libre. |
Table performance_schema.health_process_memory
Le moniteur d'état utilise la table performance_schema.health_process_memory
du schéma de performance 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 health_process_memory Table de schéma de performance
Colonne | Description |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette rangée a été collecté. |
PROCESS_NAME |
Nom du processus MySQL Server. |
PID |
Identificateur du système du processus MySQL Server. |
VM_RSS |
Taille du jeu résident du processus serveur MySQL, en octets. |
VM_DATA |
Taille du segment de données du processus MySQL Server, en octets. |
VM_SWAP |
Taille du segment de permutation de processus du serveur MySQL, en octets. |
PAGE_FAULTS |
Nombre d'erreurs de page nécessitant des E/S de disque. |
Table performance_schema.system_cpu_stats
Le moniteur d'état collecte des statistiques sur l'utilisation d'UC par le système de base de données. Les statistiques sont disponibles dans deux tables du schéma de performance 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 performance de MySQL Server est alimentée avec un échantillon de données lorsque vous l'interrogez. La table performance_schema.system_cpu_stats_history
stocke régulièrement des échantillons de données.
Les statistiques de ces tables proviennent du fichier système Linux /proc/stat
.
Tableau 17-4 : Tables system_cpu_stats et system_cpu_stats_history de schéma de performance
Colonne | Description |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette rangée a été collecté. |
CPU |
La rangée d'UC affiche les données agrégées d'utilisation d'UC, et chaque rangée numérotée (par exemple, cpu0, cpu1) affiche les données d'un processus individuel. Tous les temps 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 passé à entretenir les interruptions matérielles. |
SOFTIRQ_MS |
Le temps passé à entretenir le logiciel 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 unité centrale virtuelle avec une priorité normale. |
GUEST_NICE_MS |
Temps passé à exécuter une unité centrale virtuelle avec une priorité faible. |
Table performance_schema.system_disk_stats
Le moniteur d'état 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 performance 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 performance de MySQL Server est alimentée avec un échantillon de données lorsque vous l'interrogez. La table performance_schema.system_disk_stats_history
stocke régulièrement des échantillons de données.
Les statistiques de ces tables proviennent du fichier système Linux /proc/diskstats
.
Tableau 17-5 : Tables system_disk_stats et system_disk_stats_history de schéma de performance
Colonne | Description |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette rangée a été collecté. |
DEVICE |
Nom du périphérique pour ce disque. |
READS |
Nombre de lectures terminées avec succès. |
READ_BYTES |
Nombre d'octets lus. |
READ_TIME_MS |
Temps passé à lire, en millisecondes. |
WRITES |
Nombre d'écritures terminées avec succès. |
WRITE_BYTES |
Nombre d'octets écrits. |
WRITE_TIME_MS |
Temps passé à écrire, en millisecondes. |
FLUSHES |
Nombre de demandes de vidage terminées avec succès. |
FLUSH_TIME_MS |
Temps passé à rincer, en millisecondes. |
Table performance_schema.system_memory_stats
Le moniteur d'état 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 performance 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 performance de MySQL Server est alimentée avec un échantillon de données lorsque vous l'interrogez. La table performance_schema.system_memory_stats_history
stocke régulièrement des échantillons de données.
Les statistiques de ces tables proviennent du fichier système Linux /proc/meminfo
.
Tableau 17-6 : Tables system_memory_stats et system_memory_stats_history de schéma de performance
Colonne | Description |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette rangée 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 disponible estimée 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 pages). |
SLAB_BYTES |
Quantité de mémoire utilisée pour mettre en mémoire 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 permutation qui n'est pas utilisée actuellement. |
SWAP_USED_BYTES |
Quantité totale de mémoire qui a été remplacée par la mémoire vive et qui se trouve temporairement sur le disque. |
SWAP_IN |
Quantité de mémoire permutée en mémoire vive à partir du disque, en Ko par seconde. |
SWAP_OUT |
Quantité de mémoire permutée sur le disque à partir de la mémoire vive, en Ko par seconde. |
Table performance_schema.system_process_stats
Le moniteur d'état collecte des statistiques pour chaque unité d'exécution utilisée 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 performance 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 performance de MySQL Server est alimentée avec un échantillon de données lorsque vous l'interrogez. La table performance_schema.system_process_stats_history
stocke régulièrement des échantillons de données.
Pour les statistiques de processus, la table à la demande retourne une rangée pour chaque unité d'exécution utilisée par le processus mysqld
. Toutefois, la table d'historique stocke une seule rangée pour chaque échantillon, avec les totaux agrégés pour tous les fils 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 system_process_stats et system_process_stats_history de schéma de performance
Colonne | Description |
---|---|
TIMESTAMP |
Heure à laquelle l'échantillon de données de cette rangée a été collecté. |
PID |
Code de traitement. |
PROCESS_NAME |
Nom du processus, qui est mysqld .
|
TID |
ID fil pour le fil individuel indiqué dans cette rangée. |
THREAD_NAME |
Nom du fil instrumenté pour le fil individuel affiché dans cette rangée. |
STATE |
Caractère indiquant l'état de l'unité d'exécution au moment de l'échantillon : exécution (R ), mise en veille en attente interrompue (S ), attente d'un arrêt ininterrompu du disque (D ), unité d'exécution zombie (Z ), arrêt d'un signal ou d'une trace (T ), pagination (W ), mort (X ), wakekill (K ), veille (W ) ou garé (P ).
|
UTIME_MS |
Temps passé par ce fil en mode utilisateur, en millisecondes. |
STIME_MS |
Temps passé par ce fil en mode noyau, en millisecondes. |
CUTIME_MS |
Temps passé par les processus enfants de ce processus en mode utilisateur, en millisecondes. |
CSTIME_MS |
Temps passé par les processus enfants de ce processus en mode noyau, en millisecondes. |
NUM_THREADS |
Nom des threads dans ce processus. |
VSIZE_BYTES |
Taille de la mémoire virtuelle en octets. |
RSS_BYTES |
Nombre d'octets que le processus a en mémoire réelle (taille du jeu résident). |
RSSLIM_BYTES |
Limite en octets de la taille définie par le résident du processus. |
PROCESSOR |
Numéro d'UC sur lequel l'unité d'exécution a été exécutée pour la dernière fois. |
DELAYACCT_BLKIO_MS |
Les délais d'E/S de bloc agrégés, en millisecondes. |
GUEST_TIME_MS |
Heure du client pour le processus, en millisecondes. |
CGUEST_TIME_MS |
Temps invité pour les processus enfants du processus, en millisecondes. |
READ_BYTES |
Nombre d'octets extraits par ce processus à partir de la couche de stockage. |
WRITE_BYTES |
Nombre d'octets envoyés par ce processus à la couche de stockage. |
Consultation des variables du moniteur d'état
Les variables du moniteur d'état sont des paramètres de configuration pour 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 l'interpréteur de commandes MySQL pour voir les variables du moniteur d'état et leurs valeurs.
- Système de base de données en cours d'exécution.
- Client de ligne de commande tel que client MySQL ou Shell MySQL connecté au système de base de données. Voir 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 du moniteur d'état
Toutes les variables de système du moniteur d'état portent le préfixe 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.
est omis du tableau ci-dessous. Par exemple, disk_fallback_enable
est en fait health_monitor.disk_fallback_enable
.
Tableau 17-8 Variables du système du moniteur d'état
Variable de système | Valeur par défaut | Description |
---|---|---|
disk_fallback_enable |
ON | En cas de pénurie importante ou soutenue d'espace disque, le moniteur d'état règle la variable de système SUPER_READ_ONLY et OFFLINE_MODE à ON dans MySQL Server.
|
disk_fallback_force |
OFF | Mettez fin aux interrogations en avant-plan qui contiennent des verrous de métadonnées globales et réessayez en définissant SUPER_READ_ONLY .
|
disk_low_space_critical_level |
2,000 | Seuil d'espace disque faible critique dans MiB. Si l'espace disque disponible tombe en dessous de cette valeur pendant une durée quelconque, le moniteur d'état 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 en dessous de disk_low_space_level ou de disk_low_space_percent (selon la valeur la plus basse) avant que le moniteur d'état 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 reste inférieur à ce pourcentage du stockage disponible total pendant une durée supérieure à la valeur de disk_low_space_duration , le moniteur d'état 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 reste inférieur à ce pourcentage du stockage disponible total pendant une durée supérieure à la valeur de disk_low_space_duration , le moniteur d'état définit les modes SUPER_READ_ONLY et OFFLINE_MODE sur MySQL Server.
|
disk_monitored |
/db | Point de montage pour les 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 | Réglez la variable à ON pour activer la récupération suite à une pénurie soutenue ou importante et à OFF pour désactiver la récupération suite à une pénurie soutenue 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 le moniteur d'état définisse OFFLINE_MODE = OFF .
|
disk_recovery_time_2 |
300 secondes | Temps 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 le moniteur d'état 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 dans la période disk_recovery_cycle_window .
|
disk_recovery_window |
86400 secondes | Temps (en secondes) écoulé après le dernier cycle de récupération réussie après lequel 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 temporisateurs de récupération disk_recovery_time_1 et disk_recovery_time_2 pour chaque cycle de récupération.
|
disk_running |
ON | État d'activité du moniteur d'état. |
disk_sample_rate |
60 | Fréquence de la collecte des données sur 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 maximum est de 86400 (une fois par jour). |
disk_usage_warning_level_1 |
20 | Pourcentage d'espace disque disponible supérieur au paramètre disk_low_space_level défini. Si l'espace disque disponible passe en dessous de ce niveau, l'avertissement WARNING_DISK_USAGE_LEVEL_1 est généré.
|
disk_usage_warning_level_2 |
10 | Pourcentage d'espace disque disponible, supérieur au paramètre disk_low_space_level défini. Si l'espace disque disponible passe en dessous de ce niveau, l'avertissement WARNING_DISK_USAGE_LEVEL_2 est généré.
|
disk_usage_warning_level_3 |
5 | Pourcentage d'espace disque disponible, supérieur au paramètre disk_low_space_level défini. Si l'espace disque disponible passe en dessous de ce niveau, l'avertissement WARNING_DISK_USAGE_LEVEL_3 est généré.
|
memory_reporting |
ON | Active la production de rapports 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 | État d'activité du moniteur de mémoire du moniteur d'état. |
memory_sample_rate |
60 | Fréquence de la 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 maximum 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 passe en dessous de ce niveau, l'avertissement WARNING_MEMORY_USAGE_LEVEL_1 est généré.
|
memory_usage_warning_level_2 |
500 | Quantité de mémoire disponible (MiB). re disponible passe en dessous de ce niveau, l'avertissement WARNING_MEMORY_USAGE_LEVEL_2 est généré.
|
memory_usage_warning_level_3 |
100 | Quantité de mémoire disponible (MiB). re disponible passe en dessous de ce niveau, l'avertissement WARNING_MEMORY_USAGE_LEVEL_3 est généré.
|
status_interval |
10 | Fréquence (en multiples de disk_sample_rate ) d'envoi des messages de statut à la table du journal des erreurs. Par exemple, si status_interval = 10 et disk_sample_rate = 60 secondes, le moniteur d'état envoie un message de statut à la table du journal 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 performance system_cpu_stats_history . Si ces statistiques ne sont pas stockées, vous pouvez toujours accéder à un instantané sur 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 performance system_memory_stats_history . Si ces statistiques ne sont pas stockées, vous pouvez toujours accéder à un instantané sur 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 performance system_disk_stats_history . Si ces statistiques ne sont pas stockées, vous pouvez toujours accéder à un instantané sur demande en interrogeant la table system_disk_stats .
|
system_process_stats_history |
ON | Indique si les statistiques du processus serveur MySQL (mysqld ) sont collectées et stockées dans la table de schéma de performance system_process_stats_history . Si ces statistiques ne sont pas stockées, vous pouvez toujours accéder à un instantané sur 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 traitement. 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 réglée à ON , les tables de statistiques pour l'utilisation de l'UC système, l'utilisation du disque, l'utilisation de la mémoire et le processus serveur MySQL (mysqld ) sont disponibles, et les tables d'historique correspondantes sont alimentées si leurs variables de système sont réglées à ON .
|
system_sample_rate |
60 | Fréquence de la 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 maximum est de 86400 (une fois par jour). |
Messages du moniteur d'état
Les erreurs, les avertissements et les mises à jour de statut du moniteur d'état sont enregistrés dans performance_schema.error_log
. Le moniteur d'état abrége TiB en T, GiB en G et MiB en M dans le journal des erreurs. Par exemple, 306.6G = 306,6 GiB = 329,2 Go.
Tableau 17-9 Messages du moniteur d'état
Type de message | Description |
---|---|
Mise à jour du statut | Le moniteur d'état émet une mise à jour de statut de sous-programme en fonction du nombre de secondes défini par sample_rate * status_interval . Par exemple :
|
Avertissement de seuil | Si la quantité d'espace disponible est inférieure à l'un des seuils définis par disk_usage_warning_level_* , le moniteur d'état émet un avertissement. L'exemple suivant présente l'avertissement pour disk_usage_warning_level_2 , défini comme 4 % de l'espace total au-dessus de la limite d'espace faible :
|
Avertissement disk_low_space_duration
|
Si l'espace disque disponible tombe en dessous de la limite d'espace faible de 18 GiB, le moniteur d'état démarre le temporisateur de secours et émet un avertissement. Par exemple :
|
Avertissement lié au mode OFFLINE/SUPER_READ_ONLY
|
Si l'espace disque disponible reste inférieur à la limite faible pendant plus de disk_low_space_duration secondes, le moniteur d'état place le serveur dans SUPER_READ_ONLY et OFFLINE_MODE . Par exemple : Voir Résolution du problème SUPER_READ_ONLY et OFFLINE_MODE causé par un espace de stockage disponible faible.
|
Avertissement critique | Si l'espace disque disponible reste inférieur à disk_low_space_critical_level pendant une durée quelconque, le moniteur d'état place le serveur en mode SUPER_READ_ONLY . Par exemple :
|
Avertissement d'annulation du temporisateur | Si l'espace disponible passe au-dessus de la limite inférieure avant que le délai de disk_low_space_duration secondes soit écoulé, le temporisateur du mode de secours est annulé et le moniteur d'état émet un message de statut ou d'avertissement, si l'espace disponible se trouve toujours dans un intervalle d'avertissement. Par exemple :[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 sur la mémoire | Si la mémoire disponible tombe en dessous de l'un des seuils définis par memory_usage_warning_level_* , le moniteur d'état émet un avertissement qui inclut les détails des diagnostics de 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