cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "MAHE Vincent RD-TECH-REN" <v.m...@francetelecom.com>
Subject Question sur les pools de composants Avalon
Date Wed, 26 Oct 2005 08:50:05 GMT

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:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message