Jet Profiler pour MySQL

Un outil d'optimisation de requêtes

Craig Efrein

Jet Profiler est un outil d'optimisation de requêtes qui récolte une variété de statistiques sur les bases de données MySQL. Cet article vous permet de faire vos premiers pas avec cet outil à la fois pédagogique facile à utiliser.
Commentez

- Titre : Jet Profiler pour MySQL

- Auteur : Craig Efrein

- Parution : 14 septembre 2012

- Licence : Copyright ® 2012 Craig Efrein. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- 0. Introduction

- 0-A. Version d'essai

- 0-B. Version payante

- I. Utilisation

- II. Classification de la requête

- III. Pics de surcharge

- IV. Top États

- V. Conclusion

- VI. Liens

0 - Introduction

Jet Profiler de Polaricon est un outil permettant d'identifier des goulots de performance dans les bases MySQL. Il s'agit d'une application bureautique qui récolte une variété de statistiques d'une base de données en cours. Il est compatible avec Windows, Mac et Linux. MySQL étant habituellement associé aux sites web, Jet Profiler est donc utilisé plus souvent pour mesurer la performance des sites. Il peut être utilisé pour analyser la performance d'une application écrite pour MySQL.

0-A - Version d'essai

Jet Profiler est disponible en deux versions, la version gratuite et la version professionnelle au prix de 499 $. La version gratuite n'inclut pas tous les services, elle est utilisée à des fins pédagogiques. Vous pouvez la télécharger sur leur site.

0-B - Version payante

La version payante inclut de nombreuses capacités telles que l'option d'enregistrer les données récoltées dans un fichier Jet Profiler (.jpp). En plus des écrans déjà compris avec la version d'essai, la version payante comprend aussi deux écrans indispensables à l'optimisation : les requêtes lentes et les requêtes verrouillées. L'écran « requêtes lentes » affiche toutes les requêtes dépassant un seuil en secondes défini par l'utilisateur. L'écran requêtes verrouillées est utilisé pour identifier la contention qu'on trouve souvent avec les tables en MyISAM. Ce type d'information peut amener à la décision de basculer la table en InnoDB qui gère mieux la gestion de transactions.

I - Utilisation

Lorsqu'il est démarré, vous saisissez le nom du serveur, l'utilisateur et le mot de passe pour la base de données. Ensuite, en appuyant sur le bouton enregistrer et après plusieurs secondes, les données commenceront à s'afficher sur l'écran.

Il y a plusieurs histogrammes et camemberts proposant des statistiques de performance, telles que :

- le nombre de threads ;

- les utilisateurs connectés ;

- le taux d'utilisation de cache ;

- le taux d'utilisation du buffer InnoDB ;

- le flux réseau ;

- les verrous ;

- les balayages ;

- la performance de la réplication.

Chaque graphique inclut une liste des requêtes actuellement en cours sur la machine, affichant celles qui sont les plus gourmandes en termes de ressources. Cette liste comprend les requêtes à la fois rapides et lentes, ce qui est un avantage au journal standard MySQL de requêtes lentes. Durant l'analyse, les requêtes montent et descendent en haut de la liste en fonction de leur charge CPU. Une barre indiquant le temps CPU de la requête, se trouve à droite, identifiant facilement la plus gourmande.

II - Classification de la requête

L'un des aspects les plus démonstratifs est la classification de la requête et sa visualisation. En cliquant dessus, les requêtes peuvent être consultées. Une fenêtre affichera le plan d'exécution. Il s'agira d'un diagramme du traitement de la requête par le serveur, qui mettra en exergue son efficacité.

Une classification sera attribuée de la façon suivante :

- « Bonne » ;

- « Mauvaise » ;

- « Utilisant un balayage complet d'index ».

Cette information rendra l'analyse de la requête plus facile, et expliquera les raisons de son inefficacité. Cette requête pourrait ensuite être améliorée par l'analyse. Ensuite, une nouvelle analyse pourrait valider l'efficacité de ces changements.

III - Pics de surcharge

Il est aussi possible de focaliser l'outil sur une plage d'horaires de données déjà stockées. Cette méthode rendra des informations plus détaillées, telles que les requêtes interceptées à un moment précis. Cette information pourrait être utilisée ensuite, afin de relever d'importants indices. Par exemple, si vous avez des tâches planifiées qui sont lancées à certains intervalles, ou si vous avez une saturation vous incitant à une analyse plus approfondie du serveur, alors, Jet Profiler pourrait vous fournir des informations primordiales pour identifier l'origine du problème. On pourrait aussi comparer la charge de chaque utilisateur, afin d'identifier le plus gourmand en termes de ressources

IV - Top États

Disponible dans les deux versions, il y a l'affichage des tops états en forme de camembert divisés en fonction de leur temps CPU, le tri des données, la création de tables temporaires, envoi de données à travers le réseau. Il s'agit des informations relatives à l'état global de MySQL permettant de répondre facilement à la question : Que fait MySQL en ce moment ?

Dans cet exemple, MySQL passe plus de 70 pour cent de son temps à trier les données renvoyées à l'utilisateur.

V - Conclusion

Jet Profiler est à la fois facile à comprendre et pédagogique. Il fournit des informations détaillées sur des goulots de performance ce qui simplifiera la compréhension et la résolution des problèmes de votre serveur de base de données. Pour plus d'informations et de documentation, rendez-vous sur le site officiel.

Je tiens à remercier CinePhil pour sa relecture technique et ses précieuses orientations. Je remercie aussi ClaudeLELOUP pour ses corrections.

VI - Liens

http://www.jetprofiler.com/download/ : page de téléchargement de la version gratuite.