Pour les « grands » tirs de charges dont l’objectif est de tester une nouvelle application J2EE (ou JEE) avant sa mise en production, et afin d’éviter les crashs le jour du lancement, on mobilise en général une équipe des différents « corps de métier » informatiques.
On aura ainsi :
- les « tireurs » ceux qui vont faire le tir de charges avec un outil dédié,
- les fonctionnels qui assistent les tireurs pour la scénarisation du tir,
- les préparateurs de données qui sont chargés de fournir des données aux injecteurs pour le tir,
- les gens du réseau pour la surveillance du trafic et de la bande passante,
- les DBA pour la surveillance de l’activité de la base de données,
- les superviseurs des serveurs d’applications pour monitorer l’activité de l’application,
- l’équipe de développement de l’application qui croisent les doigts,
- et bien sur les chefs du fonctionnel et les chefs de la technique
Tout cela fait beaucoup de monde, on ajoutera en général un responsable général, chargé entre autre de synchroniser toutes les actions, et donner le GO du lancement.
Une fois que le tir lancé et terminé, l’expérience montre que c’est en général du coté du serveur d’applications J2EE que les problèmes sont visibles. Où s’ils ne sont pas visibles, on pense à lui en premier car c’est lui qui supporte l’application. Alors quand c’est vous le responsable de la supervision du cluster de serveurs d’applications, tout ce beau monde se retourne vers vous pour avoir l’explication, le comment du pourquoi, afin de comprendre la raison du non succès du tir de charge…
Pourtant vous avez fait une configuration des serveurs d’applications clustérisés aux petits oignons :
- configuration de la taille minimum et maximum idéale pour ce type d’application
- modification des paramètres de JVM pour avoir notamment un fonctionnement du Garbage Collector en (quasi) parallèle (Concurrent Mark Sweep)
- réglage des unités d’exécution min et max, temps d’inactivité
- réglage du pool de connexions à la base de données, avec activation du cache des requêtes SQL préparées
- réglage du gestionnaire de sessions
- activation du monitoring,
- et d’autres petits réglages de derrière les fagots : taille des files d’attente TCP, nombre des requêtes keep-alive, etc
Alors avec ce tunning de folie, difficile de comprendre pourquoi le serveur d’applications souffre lors du tir de charges… Continuer la lecture de Tir de charges : Quand les problèmes ne viennent pas du serveur d’applications