La conférence MySQL’2010 s’est finie hier, mais je pense que je vais avoir de quoi blogger pour plusieurs semaines.
Deux des sessions (voir ici et ici) auxquelles j’ai assisté m’ont donné quelques bonnes pistes pour avancer beaucoup plus rapidement sur les problèmes de performance d’applications PHP tournant avec un backend MySQL.
L’instrumentation va s’appuyer sur :
- la possibilité d’utiliser des variables (mise à jour par des scripts PHP) dans les logs apaches avec MOD_LOG_CONFIG
- la possibilité de commenter les requêtes SQL envoyé à MySQL et de retrouver les informations en question dans les logs
- les impressionnantes capacités des outils trouvés dans le kit MaatKit (www.maatkit.org).
Tout cela va permettre de retrouver facilement les éléments d’une application qui ont besoin d’être optimisés, et de vérifier par la suite que les travaux d’optimisation ont effectivement portés leurs fruits.
Les outils MaatKit permettront aussi de gérer la mise en place de « query reviews », gestion qui pourra se faire en même temps que le traitement des logs d’instrumentation. Le principe est simple : on traite régulièrement les logs de production pour en extraire des informations sur les classes de requêtes exécutées sur son serveur MySQL. On peut ensuite choisir les requêtes qui posent des problèmes de performance et indiquer qu’elles ont été revues, corrigées ou que tout allait bien. Et si des modifications de configuration ou de taille de données ont un impact sur ces requêtes, on saura détecter la modification de performances et agir pour rétablir la situation.
Je vois déjà chez qui je pourrais mettre cela en place pour faciliter l’amélioration des performances de leurs serveurs.

