Mai 10

7 OUTILS POUR REPRODUIRE ET DIAGNOSTIQUER VOS PROBLÈMES DE PERFORMANCE WEB

Après avoir établi un plan d’amélioration de vos performances web, voici quelques outils utiles pour simuler le fonctionnement de votre site web et investiguer plus en profondeur l’utilisation de vos ressources.

 

COMMENT REPRODUIRE VOS PROBLÈMES DE PERFORMANCE ? 

Plus on effectue des optimisations et plus il est complexe de reproduire les conditions dans lesquelles les performances se dégradent. Mais savoir si on exécute le bon scénario de test est une étape qu’il ne faut pas négliger !

On vous propose quelques outils pour vous aider :

AB (Apache Benchmark) : Un outil d’évaluation des performances de votre serveur web qui indique le nombre de requêtes par seconde que votre application est capable de prendre en charge.

  • Point fort : Vous pouvez simuler l’arrivée massive d’utilisateurs sur une page.
  • Point faible : Il n’est pas fait pour simuler efficacement l’activité d’un ou plusieurs utilisateurs.

JMETER : Vous permet de simuler un grand nombre de requêtes concurrentes et donc de simuler le comportement du site avec un grand nombre de visiteurs. Il produit une synthèse graphique des résultats du test.

  • Point fort : Permet de tester beaucoup d’éléments annexes (serveurs mails, connexion JDBC…)
  • Point faible : Difficile de créer un jeu de tests qui soit représentatif du comportement exact de l’application

SELENIUM GRID : Réalisez des tests en simulant l’activité d’un ou plusieurs utilisateurs sur un site web. Grâce au plugin Firefox, vous pouvez « enregistrer » un scénario et le rejouer à volonté.

  • Point fort : Permet de jouer plusieurs fois le même scénario en parallèle.

BATCHS DE REQUÊTES SQL :  Vous pouvez obtenir la liste de toutes les requêtes faites à la base de données pendant l’exécution d’un scénario représentatif, puis de le rejouer pour simuler l’impact de l’application sur la charge de votre serveur de données.

Astuce : Vous avez la possibilité de rejouer le batch de façon unitaire pour mesurer le gain de performance ou d’en lancer plusieurs pour simuler un pic d’activité.

Pour cela vous avez 2 options :

  • Écrire dans un journal de requêtes au niveau de l’applicatif
  • Configurer MySQL pour tracer toutes les requêtes

IL EST TEMPS D’ÉTABLIR UN DIAGNOSTIC  

La solution peut parfois être évidente, mais dans certains cas il est nécessaire de préciser le diagnostic pour appliquer la correction appropriée. On vous propose des outils pour investiguer plus en profondeur l’utilisation des ressources :

Logs Apache

« Aïe ! Les temps de réponse se dégradent sous la charge ! Pourtant mon site répond correctement en temps normal. »

Les Logs Apache tracent toutes les requêtes faites au serveur apache. En les configurant correctement, vous aurez la possibilité d’obtenir le temps de réponse de votre site. Idéal pour visualiser le comportement de votre site en fonction du nombre d’utilisateurs connectés !

Logs MySQL 

« MySQL consomme trop CPU ! » « Mon disque dur est saturé ! »

Les logs MySQL retracent l’activité de votre serveur de données. Le journal de log simple pourra vous renseigner sur la stabilité du serveur MySQL. Enfin, le fichier des slow queries liste l’ensemble des requêtes dont la durée d’exécution est supérieure à un seuil donné.

XDebug

« PHP consomme énormément de CPU ! »

La fonction Profiler vous permet d’analyser les temps d’exécution de votre code PHP. Il permet de déterminer le temps passé dans chacune des fonctions du code, et donc d’identifier quelle partie de code est moins performante.

 

Pour aller plus loin dans votre démarche, consultez notre livre blanc