Bonjour,

J'effectue des tests en charge sur une webapp qui utilise Cocoon.

Je souhaiterais au moins atteindre 800 utilisateurs simultanés et pour le 
moment je ne suis arrivé qu'à 450 (j'ai déjà gagné un facteur 2 en mettant 
<parameter name="use-persistent-cache" value="false"/> dans le transient store).

Lors de la montée en charge il arrive un moment, au bout d'une demi-heure, où 
on assiste à un brusque ralentissement des traitements effectués par chaque 
thread traitant les requêtes HTTP provoquant une activité permanente par tous 
les threads disponibles (150) et donc un remplissage progressif de la file 
d'attente de traitement provoquant au final une erreur : ThreadPool.logFull.

Lorsque ce seuil est atteint, on remarque que globalement le serveur ne fait 
plus grand chose (la CPU est peu utilisée) et que la plupart des threads 
passent beaucoup de temps à obtenir et libérer une ressource par 
l'intermédiaire de la classe :
        org.apache.avalon.excalibur.pool.ResourceLimitingPool
en appelant respectivement les méthodes get() et put().

Le constructeur de cette classe dispose des paramètres suivants :
* factory - The ObjectFactory which will be used to create new Poolables as 
needed by the pool.
* max - Maximum number of Poolables which can be stored in the pool, 0 implies 
no limit.
* maxStrict - true if the pool should never allow more than max Poolable to be 
created. 
* blocking - true if the pool should cause a thread calling get() to block when 
Poolables are not currently available in the pool.
* blockTimeout - The maximum amount of time, in milliseconds, that a call to 
get() will block before an exception is thrown. A value of 0 implies an 
indefinate wait.
* trimInterval - The minimum interval with which old unused poolables will be 
removed from the pool. A value of 0 will cause the pool to never trim poolables.

cf : 
http://excalibur.apache.org/apidocs/org/apache/avalon/excalibur/pool/ResourceLimitingPool.html

Je voudrais savoir comment on peut modifier ces paramètres ?
Est-ce que dans Cocoon on a blocking=true et blockTimeout=0 par exemple ?

Tout conseil ou éclaircissement sur la question sera le bienvenue ...

Vincent Mahé

---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:[EMAIL PROTECTED]
Autres commandes : mailto:[EMAIL PROTECTED]

Répondre à