Cette rubrique présente la fonctionnalité Performance Agent fournie par AliSQL. Elle permet de collecter des statistiques sur les performances d'une instance ApsaraDB RDS for MySQL.
Informations générales
Performance Agent s'appuie sur une table mémoire nommée PERF_STATISTICS, stockée dans la base de données système information_schema. Cette table conserve les données de performance générées au cours de la période la plus récente. Interrogez-la directement pour consulter ces données.
Prérequis
Votre instance RDS doit exécuter l'une des versions MySQL et éditions RDS suivantes :
MySQL 8.4
MySQL 8.0 avec une version mineure du moteur 20200229 ou ultérieure
MySQL 5.7 avec une version mineure du moteur 20200229 ou ultérieure
MySQL 5.6 avec une version mineure du moteur 20200630 ou ultérieure
Pour mettre à niveau la version mineure du moteur de votre instance, consultez Mettre à niveau la version mineure du moteur.
Description
Le tableau suivant décrit les paramètres à configurer pour la fonctionnalité Performance Agent.
|
Paramètre |
Description |
|
performance_agent_enabled |
Indique si la fonctionnalité Performance Agent est activée. Valeurs valides : ON et OFF. Valeur par défaut : ON. |
|
performance_agent_file_size |
Taille d'un fichier local unique contenant les données de performance. Unité : Mo. |
|
performance_agent_interval |
Intervalle de collecte des données. Unité : secondes. Valeur par défaut : 1. |
|
performance_agent_network_device |
Préfixe du nom de la carte réseau physique (NIC) de l'hôte. |
|
performance_agent_perfstat_volume_size |
Nombre maximal d'enregistrements de données dans la table |
Ces paramètres ne sont pas visibles dans la console. Exécutez la commande SHOW VARIABLES LIKE '<parameter_name>'; pour vérifier leurs valeurs.
Schéma
La table mémoire PERF_STATISTICS utilise le schéma suivant :
CREATE TEMPORARY TABLE `PERF_STATISTICS` (
`TIME` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`PROCS_MEM_USAGE` double NOT NULL DEFAULT '0',
`PROCS_MEM_RATIO` double NOT NULL DEFAULT '0',
`PROCS_CPU_RATIO` double NOT NULL DEFAULT '0',
`PROCS_IOPS` double NOT NULL DEFAULT '0',
`PROCS_IOPS_READ` double NOT NULL DEFAULT '0',
`PROCS_IOPS_WRITE` double NOT NULL DEFAULT '0',
`PROCS_IO_READ_BYTES` bigint NOT NULL DEFAULT '0',
`PROCS_IO_WRITE_BYTES` bigint NOT NULL DEFAULT '0',
`MYSQL_CONN_ABORT` int NOT NULL DEFAULT '0',
`MYSQL_CONN_CREATED` int NOT NULL DEFAULT '0',
`MYSQL_USER_CONN_COUNT` int NOT NULL DEFAULT '0',
`MYSQL_CONN_COUNT` int NOT NULL DEFAULT '0',
`MYSQL_CONN_RUNNING` int NOT NULL DEFAULT '0',
`MYSQL_CONNECTIONS` int NOT NULL DEFAULT '0',
`MYSQL_CONN_CACHED` int NOT NULL DEFAULT '0',
`MYSQL_LOCK_IMMEDIATE` int NOT NULL DEFAULT '0',
`MYSQL_LOCK_WAITED` int NOT NULL DEFAULT '0',
`MYSQL_QUESTIONS` int NOT NULL DEFAULT '0',
`MYSQL_COM_INSERT` int NOT NULL DEFAULT '0',
`MYSQL_COM_INSERT_SELECT` int NOT NULL DEFAULT '0',
`MYSQL_COM_REPLACE` int NOT NULL DEFAULT '0',
`MYSQL_COM_REPLACE_SELECT` int NOT NULL DEFAULT '0',
`MYSQL_COM_UPDATE` int NOT NULL DEFAULT '0',
`MYSQL_COM_UPDATE_MULTI` int NOT NULL DEFAULT '0',
`MYSQL_COM_DELETE` int NOT NULL DEFAULT '0',
`MYSQL_COM_DELETE_MULTI` int NOT NULL DEFAULT '0',
`MYSQL_COM_SELECT` int NOT NULL DEFAULT '0',
`MYSQL_COM_COMMIT` int NOT NULL DEFAULT '0',
`MYSQL_COM_ROLLBACK` int NOT NULL DEFAULT '0',
`MYSQL_COM_PREPARE` int NOT NULL DEFAULT '0',
`MYSQL_HANDLER_COMMIT` int NOT NULL DEFAULT '0',
`MYSQL_HANDELR_ROLLBACK` int NOT NULL DEFAULT '0',
`MYSQL_LONG_QUERY` int NOT NULL DEFAULT '0',
`MYSQL_TCACHE_GET` bigint NOT NULL DEFAULT '0',
`MYSQL_TCACHE_MISS` bigint NOT NULL DEFAULT '0',
`MYSQL_TMPFILE_CREATED` int NOT NULL DEFAULT '0',
`MYSQL_TMP_TABLES` int NOT NULL DEFAULT '0',
`MYSQL_TMP_DISKTABLES` int NOT NULL DEFAULT '0',
`MYSQL_SORT_MERGE` int NOT NULL DEFAULT '0',
`MYSQL_SORT_ROWS` int NOT NULL DEFAULT '0',
`MYSQL_BYTES_RECEIVED` bigint NOT NULL DEFAULT '0',
`MYSQL_BYTES_SENT` bigint NOT NULL DEFAULT '0',
`MYSQL_BINLOG_OFFSET` int NOT NULL DEFAULT '0',
`MYSQL_IOLOG_OFFSET` int NOT NULL DEFAULT '0',
`MYSQL_RELAYLOG_OFFSET` int NOT NULL DEFAULT '0',
`EXTRA` json NOT NULL DEFAULT 'null'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Colonne | Description |
TIME | Horodatage de la collecte des données. Le format est |
PROCS_MEM_USAGE | Mémoire physique utilisée par le processus. Unité : octets. |
PROCS_MEM_RATIO | Taux d'utilisation de la mémoire par le processus. |
PROCS_CPU_RATIO | Taux d'utilisation du CPU par le processus. |
PROCS_IOPS | Nombre d'appels d'E/S système. |
PROCS_IOPS_READ | Opérations d'E/S en lecture par seconde (IOPS) pour le processus. |
PROCS_IOPS_WRITE | IOPS en écriture pour le processus. |
PROCS_IO_READ_BYTES | Volume de données lu par les opérations d'E/S. Unité : octets. |
PROCS_IO_WRITE_BYTES | Volume de données écrit par les opérations d'E/S. Unité : octets. |
MYSQL_CONN_ABORT | Nombre de connexions interrompues. |
MYSQL_CONN_CREATED | Nombre de connexions créées. |
MYSQL_USER_CONN_COUNT | Nombre total de connexions utilisateur actives. |
MYSQL_CONN_COUNT | Nombre total de connexions. |
MYSQL_CONN_RUNNING | Nombre de connexions actuellement actives. |
MYSQL_CONNECTIONS | Nombre de tentatives de connexion au serveur MySQL. |
MYSQL_CONN_CACHED | Nombre de threads présents dans le cache de threads. |
MYSQL_LOCK_IMMEDIATE | Nombre de verrous de table obtenus immédiatement. |
MYSQL_LOCK_WAITED | Nombre de verrous de table ayant nécessité une attente. |
MYSQL_QUESTIONS | Nombre d'instructions exécutées par le serveur. |
MYSQL_COM_INSERT | Nombre d'instructions |
MYSQL_COM_INSERT_SELECT | Nombre d'instructions |
MYSQL_COM_REPLACE | Nombre d'instructions |
MYSQL_COM_REPLACE_SELECT | Nombre d'instructions |
MYSQL_COM_UPDATE | Nombre d'instructions |
MYSQL_COM_UPDATE_MULTI | Nombre d'instructions |
MYSQL_COM_DELETE | Nombre d'instructions |
MYSQL_COM_DELETE_MULTI | Nombre d'instructions |
MYSQL_COM_SELECT | Nombre d'instructions |
MYSQL_COM_COMMIT | Nombre d'instructions |
MYSQL_COM_ROLLBACK | Nombre d'instructions |
MYSQL_COM_PREPARE | Nombre d'instructions préparées. |
MYSQL_HANDLER_COMMIT | Nombre d'instructions |
MYSQL_HANDELR_ROLLBACK | Nombre de requêtes d'opération de restauration au sein d'un moteur de stockage. |
MYSQL_LONG_QUERY | Nombre de requêtes lentes. |
MYSQL_TCACHE_GET | Nombre de correspondances dans le cache d'ouverture de tables. |
MYSQL_TCACHE_MISS | Nombre d'absences dans le cache d'ouverture de tables. |
MYSQL_TMPFILE_CREATED | Nombre de fichiers temporaires créés. |
MYSQL_TMP_TABLES | Nombre de tables temporaires internes créées en mémoire. |
MYSQL_TMP_DISKTABLES | Nombre de tables temporaires internes créées sur disque. |
MYSQL_SORT_MERGE | Nombre de passes de fusion lors du tri. |
MYSQL_SORT_ROWS | Nombre de lignes triées. |
MYSQL_BYTES_RECEIVED | Nombre d'octets reçus de tous les clients. Unité : octets. |
MYSQL_BYTES_SENT | Nombre d'octets envoyés à tous les clients. Unité : octets. |
MYSQL_BINLOG_OFFSET | Taille des fichiers journaux binaires générés. Unité : octets. |
MYSQL_IOLOG_OFFSET | Taille des fichiers journaux binaires envoyés par l'instance source. Unité : octets. |
MYSQL_RELAYLOG_OFFSET | Taille des fichiers journaux de relais appliqués par l'instance réplica. Unité : octets. |
EXTRA | Statistiques InnoDB au format JSON. Pour plus de détails sur ces champs, consultez le tableau Descriptions des champs EXTRA ci-dessous. Remarque Les métriques des statistiques InnoDB correspondent aux valeurs renvoyées par la commande |
Tableau 1. Descriptions des champs EXTRA
|
Champ |
Description |
|
INNODB_TRX_CNT |
Nombre de transactions. |
|
INNODB_DATA_READ |
Volume de données lu. Unité : octets. |
|
INNODB_IBUF_SIZE |
Taille de la mémoire tampon d'insertion, exprimée en pages. |
|
INNODB_LOG_WAITS |
Nombre d'attentes liées aux écritures de journal. |
|
INNODB_MAX_PURGE |
Nombre de transactions purgées. |
|
INNODB_N_WAITING |
Nombre d'attentes de verrou. |
|
INNODB_ROWS_READ |
Nombre de lignes lues. |
|
INNODB_LOG_WRITES |
Nombre d'écritures de journal. |
|
INNODB_IBUF_MERGES |
Nombre de fusions issues de la mémoire tampon d'insertion. |
|
INNODB_DATA_WRITTEN |
Volume de données écrit. Unité : octets. |
|
INNODB_DBLWR_WRITES |
Nombre d'opérations de double écriture. |
|
INNODB_IBUF_SEGSIZE |
Taille actuelle de la mémoire tampon d'insertion. |
|
INNODB_ROWS_DELETED |
Nombre de lignes supprimées. |
|
INNODB_ROWS_UPDATED |
Nombre de lignes mises à jour. |
|
INNODB_COMMIT_TRXCNT |
Nombre de transactions validées. |
|
INNODB_IBUF_FREELIST |
Longueur de la liste libre. |
|
INNODB_MYSQL_TRX_CNT |
Nombre de transactions MySQL. |
|
INNODB_ROWS_INSERTED |
Nombre de lignes insérées. |
|
INNODB_ACTIVE_TRX_CNT |
Nombre de transactions actives. |
|
INNODB_OS_LOG_WRITTEN |
Volume de données écrit dans les fichiers journaux. Unité : octets. |
|
INNODB_ACTIVE_VIEW_CNT |
Nombre de vues actives. |
|
INNODB_RSEG_HISTORY_LEN |
Longueur de la liste d'historique dans le segment de restauration. |
|
INNODB_AVG_COMMIT_TRXTIME |
Durée moyenne de validation d'une transaction. |
|
INNODB_MAX_COMMIT_TRXTIME |
Durée maximale de validation d'une transaction. |
|
INNODB_DBLWR_PAGES_WRITTEN |
Nombre de pages écrites via des opérations de double écriture. |
Utilisation de Performance Agent
-
Interrogez directement la table système pour obtenir les données de performance. Exemples :
-
Consultez l'utilisation du CPU et de la mémoire au cours des 30 dernières secondes :
MySQL> select TIME, PROCS_MEM_USAGE, PROCS_CPU_RATIO from information_schema.PERF_STATISTICS order by time DESC limit 30; +---------------------+-----------------+-----------------+ | TIME | PROCS_MEM_USAGE | PROCS_CPU_RATIO | +---------------------+-----------------+-----------------+ | 2020-02-27 11:15:36 | 857812992 | 18.55 | | 2020-02-27 11:15:35 | 857808896 | 18.54 | | 2020-02-27 11:15:34 | 857268224 | 19.64 | | 2020-02-27 11:15:33 | 857268224 | 21.06 | | 2020-02-27 11:15:32 | 857264128 | 20.39 | | 2020-02-27 11:15:31 | 857272320 | 20.32 | | 2020-02-27 11:15:30 | 857272320 | 21.35 | | 2020-02-27 11:15:29 | 857272320 | 28.8 | | 2020-02-27 11:15:28 | 857268224 | 29.08 | | 2020-02-27 11:15:27 | 857268224 | 26.92 | | 2020-02-27 11:15:26 | 857268224 | 23.84 | | 2020-02-27 11:15:25 | 857264128 | 13.76 | | 2020-02-27 11:15:24 | 857264128 | 15.12 | | 2020-02-27 11:15:23 | 857264128 | 14.76 | | 2020-02-27 11:15:22 | 857264128 | 15.38 | | 2020-02-27 11:15:21 | 857260032 | 13.23 | | 2020-02-27 11:15:20 | 857260032 | 12.75 | | 2020-02-27 11:15:19 | 857260032 | 12.17 | | 2020-02-27 11:15:18 | 857255936 | 13.22 | | 2020-02-27 11:15:17 | 857255936 | 20.51 | | 2020-02-27 11:15:16 | 857255936 | 28.74 | | 2020-02-27 11:15:15 | 857251840 | 29.85 | | 2020-02-27 11:15:14 | 857251840 | 29.31 | | 2020-02-27 11:15:13 | 856981504 | 28.85 | | 2020-02-27 11:15:12 | 856981504 | 29.19 | | 2020-02-27 11:15:11 | 856977408 | 29.12 | | 2020-02-27 11:15:10 | 856977408 | 29.32 | | 2020-02-27 11:15:09 | 856977408 | 29.2 | | 2020-02-27 11:15:08 | 856973312 | 29.36 | | 2020-02-27 11:15:07 | 856973312 | 28.79 | +---------------------+-----------------+-----------------+ 30 rows in set (0.08 sec) -
Affichez le nombre de lignes lues et insérées dans InnoDB au cours des 30 dernières secondes :
MySQL> select TIME, EXTRA->'$.INNODB_ROWS_READ', EXTRA->'$.INNODB_ROWS_INSERTED' from information_schema.PERF_STATISTICS order by time DESC limit 30; +---------------------+-----------------------------+---------------------------------+ | TIME | EXTRA->'$.INNODB_ROWS_READ' | EXTRA->'$.INNODB_ROWS_INSERTED' | +---------------------+-----------------------------+---------------------------------+ | 2020-02-27 11:22:17 | 39209 | 0 | | 2020-02-27 11:22:16 | 36098 | 0 | | 2020-02-27 11:22:15 | 38035 | 0 | | 2020-02-27 11:22:14 | 37384 | 0 | | 2020-02-27 11:22:13 | 38336 | 0 | | 2020-02-27 11:22:12 | 33946 | 0 | | 2020-02-27 11:22:11 | 36301 | 0 | | 2020-02-27 11:22:10 | 36835 | 0 | | 2020-02-27 11:22:09 | 36900 | 0 | | 2020-02-27 11:22:08 | 36402 | 0 | | 2020-02-27 11:22:07 | 39672 | 0 | | 2020-02-27 11:22:06 | 39316 | 0 | | 2020-02-27 11:22:05 | 37830 | 0 | | 2020-02-27 11:22:04 | 36396 | 0 | | 2020-02-27 11:22:03 | 34820 | 0 | | 2020-02-27 11:22:02 | 37350 | 0 | | 2020-02-27 11:22:01 | 39463 | 0 | | 2020-02-27 11:22:00 | 38419 | 0 | | 2020-02-27 11:21:59 | 37673 | 0 | | 2020-02-27 11:21:58 | 35117 | 0 | | 2020-02-27 11:21:57 | 36140 | 0 | | 2020-02-27 11:21:56 | 37592 | 0 | | 2020-02-27 11:21:55 | 39765 | 0 | | 2020-02-27 11:21:54 | 35553 | 0 | | 2020-02-27 11:21:53 | 35882 | 0 | | 2020-02-27 11:21:52 | 37061 | 0 | | 2020-02-27 11:21:51 | 40699 | 0 | | 2020-02-27 11:21:50 | 39608 | 0 | | 2020-02-27 11:21:49 | 39317 | 0 | | 2020-02-27 11:21:48 | 37413 | 0 | +---------------------+-----------------------------+---------------------------------+ 30 rows in set (0.08 sec)
-
Connectez-vous à une plateforme de supervision telle que Grafana afin de surveiller les performances en temps réel.
