jeudi 28 novembre 2013

db_stress: un prototype pour simuler une montée en charge

Cet outil écrit en Java ( environnement de test: AIX6, JVM 1.6, instance 11.2.0.2 ) permet de créer n threads. Pour chaque thread, il utilise une session créée par un pool de connexion UCP et exécute une transaction ( select ou procédure stockée ) m fois. Entre chaque exécution, un sleep permet de stresser plus au moins l'instance.

Il est disponible ici.

Pour l'utiliser, il suffit de compiler les fichiers source ( javac ) après avoir paramétré votre environnement unix ( voir fichier env_java ). Il se lance de cette manière: java Pilote nb_thread delay_ms nb_execution. Le premier paramètre indique le nombre de threads, le second paramètre la valeur du sleep en ms et le troisième paramètre le nombre d'exécutions de chaque transaction.

Il se configure à l'aide de deux fichiers xml, config.xml et scenario.xml. Le fichier config.xml permet de définir les caractéristiques de l'instance via une url jdbc et de configurer le pool de connexion UCP. Le fichier scenario.xml permet de définir un test de charge; il décrit la transaction de chaque thread. L'outil ne traite que les select et les procédures. L'utilisation des variables bindées est possible.