Pages

samedi 9 mars 2013

Optimisation de la taille du pool de connexion tomcat-jdbc

Tomcat-jdbc-pool est un nouveau pool de connexion introduit à partir de Tomcat 7 en remplacement du pool de connexion commons-pool généralement utilisé sous les versions antérieures de Tomcat. Toutes les options de configuration ont été reprises et d'autres ont été rajoutées ce qui vous permettra facilement de migrer de commons-pool à tomcat-jdbc-pool.

Je vous propose une série d'articles sur le sujet 

Optimisation de la taille du pool

Les paramètres initialSize (taille initial du pool), maxActive (nb max de connexion en parallèle), maxIdle (nb max de connexion inactive), minIdle (nombre minimal de connexion qui restent ouvertes) sont des paramètres connus.

Le paramétrage du maxIdle doit se faire d’une manière un peu plus scientifique que les autres en fonction de l’activation du pool sweeper (traduction : balayeuse de piscine). Le pool sweeper est un thread qui tourne en arrière plan pour tester les connexions inactives et redimensionner le pool en conséquence, et pour vérifier qu’il n’y a pas de fuites de connexion.

Si le pool sweeper est désactivé une connexion libérée sera fermée si le maxIdle est atteint. Sinon elle ne le sera pas et à un instant t le nb de connexions inactives pourra dépasser le maxIdle. Ceci permet d’optimiser les ouvertures fermetures lors des pics d’activité.

Le pool sweeper est activé lorsque l’une des conditions ci-dessous est remplie
  • timeBetweenEvictionRunsMillis>0 et removeAbandoned=true et removeAbandonedTimeout>0 
  • timeBetweenEvictionRunsMillis>0 et suspectTimeout>0 
  • timeBetweenEvictionRunsMillis>0 et testWhileIdle=true et validationQuery!=null 
  • timeBetweenEvictionRunsMillis>0 et minEvictableIdleTimeMillis>0; 
Dans une configuration optimale on rajouterait donc les propriétés suivantes à la définition de la datasource

 initialSize="10"
maxActive="100"
maxIdle="50"
minIdle="10"
suspectTimeout="60"
timeBetweenEvictionRunsMillis="30000"
minEvictableIdleTimeMillis="60000" 






Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.