MySQL : Identifier les transactions lentes ou causant un crash

Certains comportements de MySQL/MariaDB/Galera/Percona sont parfois difficiles à investiguer.

C'est le cas notamment de :

  • un crash provoqué par une certaine requête
  • des requêtes bloquées par des transactions en cours (une transaction pouvant locker des lignes/index, sans qu'aucune requête ne sois visible ni dans le full processlist, ni dans le engine innodb status pendant le blocage).

mysql_analyse_general_log permet de diagnostiquer plus facilement ce type de problème, en analysant le log general de MySQL (toute les requêtes), pour en extraire toutes les transactions, et les requêtes de chaque transaction.

Celà permet notamment de filtrer :

  • les transactions qui étaient en cours à l'heure d'un crash
  • les transactions ayant duré plus de N secondes

Et donc de diagnostiquer facilement ces deux types de problèmes.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : http://julien.francoz.net/index.php?trackback/54

Fil des commentaires de ce billet