les petits tutos Linux

SHOW FULL PROCESSLIST pour trouver les problèmes de performance dans MariaDB

Allez un petit Tuto pour finir la semaine. Lorsque la vitesse d’un site internet commence à diminuer ou que certaines pages mettent une éternité à s’afficher, on a généralement tendance à vérifier le code ou le serveur web en premier lieu. Néanmoins, le fautif peut parfois se trouver ailleurs… dans la base de données. Si vous utilisez MariaDB, une commande simple peut vous faire gagner beaucoup de temps : « SHOW FULL PROCESSLIST » .

Il n’est pas nécessaire d’être un administrateur système expérimenté pour l’utiliser. Cet article vous guidera étape par étape sur la manière dont cette commande peut vous aider à identifier les requêtes lentes, à comprendre ce qui entrave, et à reprendre la maîtrise de vos performances.

Tout fonctionne correctement sur votre environnement local, vos requêtes semblent appropriées, mais en production… c’est lent. Ce type de situation est plus fréquent qu’on ne le pense. Quel est le souci ? MariaDB effectue des requêtes en arrière-plan, dont certaines peuvent prendre beaucoup de temps voire entraver l’exécution d’autres. Un simple oubli d’indexation ou une requête mal formulée peut faire tomber un serveur entier. Et là où ça se complique, Il persiste à accomplir ce qu’on lui a demandé, en toute discrétion. Il est donc nécessaire de jeter un coup d’œil à ce qu’il est en train de faire.

SHOW FULL PROCESSLIST : à quoi ça sert exactement ?

La commande « SHOW FULL PROCESSLIST  » vous permet de voir en temps réel toutes les requêtes que MariaDB est en train d’exécuter. C’est un peu comme ouvrir le capot du moteur pour voir ce qui se passe dedans, on est au plus proche de la réalité du terrain !

Il existe aussi « SHOW PROCESSLIST » , mais la version « FULL » est bien plus utile, car elle affiche la requête en entier, pas seulement les 100 premiers caractères et quand on dépanne c’est mieux 👌.

Quand vous tapez :

SHOW FULL PROCESSLIST;

MariaDB vous renvoie un tableau avec plusieurs colonnes :

SHOW FULL PROCESSLIST;

Voici ce qu’elles signifient rapidement :

  • Id : identifiant unique de la connexion.
  • User : nom de l’utilisateur connecté.
  • Host : d’où vient la connexion (IP ou nom de domaine).
  • db : la base sélectionnée.
  • Command : ce que fait la connexion (Query, Sleep, Connect…).
  • Time : depuis combien de secondes elle est active.
  • State : état actuel de la requête (ex : « Sending data », « Locked »).
  • Info : la requête SQL elle-même (entière, grâce à FULL).

Cas concret : repérer une requête lente grâce à SHOW FULL PROCESSLIST

Imaginons que votre site e-commerce rame énormément depuis quelques minutes. Vous soupçonnez la base MariaDB. Première étape : vous vous connectez en ligne de commande, puis vous exécutez :

SHOW FULL PROCESSLIST;

Vous voyez alors quelque chose comme :

SELECT * FROM orders WHERE status = 'pending' ORDER BY date

Regardez bien : la requête tourne depuis 120 secondes, ce qui est très long. Elle est en train de « Sending data » , ce qui signifie qu’elle est active, mais peut bloquer d’autres requêtes si elle monopolise des ressources. Ici, le problème semble clair : une requête SELECT sans limite, sans index, qui scanne potentiellement des milliers de lignes.

Bien que la commande « SHOW FULL PROCESSLIST  » soit utile, elle présente certaines limites. Il représente un état à un instant donné, pas l’historique, donc si le problème n’est pas visible au moment de votre demande, vous ne verrez rien. Pour ceux qui veulent un historique, l’activation de « slow_query_log = 1 » et « long_query_time = 2 » est possible. J’y reviendrai peut-être dans un prochain article.

Mais pour une visu rapide, « SHOW FULL PROCESSLIST » reste un réflexe simple.

Bref, lorsque MariaDB connaît des ralentissements, ne vous concentrez pas uniquement sur le code ou le serveur pour en déterminer la raison. Faites-en une routine de lancer « SHOW FULL PROCESSLIST » . Cette commande vous fournit une visualisation en direct et peut vous assister dans la détection des requêtes lentes, la détection des blocages, et parfois même dans la résolution instantanée du problème.

Si l’article vous a plu et si vous aimez mon travail, vous pouvez faire un don en suivant ce lien :

Faire un don : https://www.paypal.com/donate/?hosted_button_id=DJBF7C54L273C

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Retour en haut