Comment afficher l'activité du serveur pour une instance de base de données MySQL Amazon RDS ?

Date de la dernière mise à jour : 13/12/2019

Comment voir l'activité du serveur d'une instance de base de données Amazon Relational Database Service (Amazon RDS) qui exécute MySQL ?

Solution

Vous pouvez utiliser l'activité du serveur pour identifier la source des problèmes de performances en affichant l'état du moteur de stockage InnoDB, en identifiant les requêtes en cours d'exécution ou en recherchant des interblocages sur l'instance de base de données.

Vous devez disposer des privilèges d'administration de serveur MySQL PROCESS pour voir tous les threads s'exécuter sur une instance de base de données MySQL. Si vous disposez pas des privilèges d'administration, SHOW PROCESSLIST affiche uniquement les threads associés au compte MySQL que vous utilisez. Vous devez également disposer des privilèges d'administration de serveur PROCESS MySQL pour utiliser SHOW ENGINE et afficher les informations relatives à l'état du moteur de stockage InnoDB.

Pour afficher l'activité du serveur pour une instance de base de données, procédez comme suit :

1.    Activez le journal général et le journal des requêtes lentes pour votre instance de base de données MySQL.

2.    Connectez-vous à l'instance de base de données qui exécute le moteur de base de données MySQL.

3.    Exécutez les commandes suivantes :

SHOW FULL PROCESSLIST\G
SHOW ENGINE INNODB STATUS\G

Remarque : pour afficher plus que les 100 premiers caractères de chaque instruction, utilisez le mot-clé FULL.

4.    Pour voir quelles sont les transactions en attente et quelles sont les transactions qui bloquent les transactions en attente :

SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query FROM information_schema.innodb_lock_waits w INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id;

Remarque : une bonne pratique consiste à rassembler ces sorties à intervalles fréquents et consécutifs (par exemple, toutes les 60 secondes). Examiner plusieurs sorties peut fournir une vue plus globale de l'état du moteur, ce qui peut vous aider à résoudre les problèmes de performance.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?