web-dev-qa-db-fra.com

Comment augmenter le nombre de threads dans le pool de threads Tomcat?

je veux juste savoir comment augmenter le nombre de threads dans le pool de threads Tomcat? et quel nombre pour définir le max aussi, je ne sais pas ce qui est approprié?

17
Mahmoud Saleh

On dirait que vous devriez rester avec les valeurs par défaut ;-)

Sérieusement: le nombre de connexions parallèles maximum que vous devez définir dépend de votre utilisation Tomcat prévue et également du nombre de cœurs sur votre serveur. Plus de cœurs sur votre processeur => plus de threads parallèles pouvant être exécutés.

Voir ici comment configurer ...

Tomcat 9: https://Tomcat.Apache.org/Tomcat-9.0-doc/config/executor.html

Tomcat 8: https://Tomcat.Apache.org/Tomcat-8.0-doc/config/executor.html

Tomcat 7: https://Tomcat.Apache.org/Tomcat-7.0-doc/config/executor.html

Tomcat 6: https://Tomcat.Apache.org/Tomcat-6.0-doc/config/executor.html

21
alfonx

Vous devrez l'ajuster en fonction de votre environnement.

Parfois, il est plus utile d'augmenter la taille du backlog (acceptCount) au lieu du nombre maximal de threads.

Dis, au lieu de

<Connector ... maxThreads="500" acceptCount="50"

tu utilises

<Connector ... maxThreads="300" acceptCount="150"

vous pouvez obtenir de bien meilleures performances dans certains cas, car il y aurait moins de threads contestant les ressources et la file d'attente de backlog serait consommée plus rapidement.

Dans tous les cas, cependant, vous devez faire quelques repères pour vraiment savoir ce qui est le mieux.

24
Elias Dorneles

De Documentation Tomcat

maxConnections Lorsque ce nombre est atteint, le serveur accepte, mais ne traite pas, une autre connexion. une fois la limite atteinte, le système d'exploitation peut toujours accepter les connexions basées sur le paramètre acceptCount. (La longueur maximale de la file d'attente pour les demandes de connexion entrantes lorsque tous les threads de traitement des demandes possibles sont utilisés. Toute demande reçue lorsque la file d'attente est pleine sera refusée. La valeur par défaut est 100.) Pour BIO, la valeur par défaut est la valeur de maxThreads sauf si un exécuteur est utilisé, auquel cas la valeur par défaut sera la valeur de maxThreads de l'exécuteur. Pour NIO et NIO2, la valeur par défaut est 10000. Pour APR/native, la valeur par défaut est 8192. Notez que pour APR/native sur Windows, la valeur configurée sera réduite au multiple le plus élevé de 1024 inférieur ou égal à maxConnections. Cette opération est effectuée pour des raisons de performances.

maxThreads
Nombre maximal de threads de traitement des demandes à créer par ce connecteur, qui détermine donc le nombre maximal de demandes simultanées pouvant être traitées. S'il n'est pas spécifié, cet attribut est défini sur 200. Si un exécuteur est associé à ce connecteur, cet attribut est ignoré car le connecteur exécutera des tâches à l'aide de l'exécuteur plutôt que d'un pool de threads interne.

13
Sagar Mhatre