2014-07-10 12 views
45

in Tomcat server.xml qual è maxThreads contro maxConnections
capisco che maxConnections è la quantità di connessioni aperte al server
E maxThreads è il numero massimo di thread di elaborazione richiesta
Ma come due parametri di configurazione che funzionano insieme, ovviamente non si impostano maxConnections su 1000 e maxThreads su 10
Qual è la relazione tra i due parametri di configurazione?Tomcat - maxThreads vs maxConnections

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" 
     maxThreads="250" SSLEnabled="true" scheme="https" secure="true" 
     clientAuth="false" sslProtocol="TLS" connectiontimeout="20000"/> 

Grazie

risposta

65

Tomcat può funzionare in 2 modi:

BIO (un thread per connessione), o NIO (molte più connessioni thread).

Tomcat7 è BIO di default, sebbene il consenso sembra essere "non usare Bio perché Nio è migliore sotto ogni aspetto". Puoi impostarlo usando il parametro "protocol" nel file server.xml - BIO sarà "HTTP1.1" o "org.apache.coyote.http11.Http11Protocol" e NIO sarà "org.apache.coyote.http11.Http11NioProtocol "

Se si utilizza BIO, credo che dovrebbero essere più o meno gli stessi. Se stai utilizzando NIO, in realtà "maxConnections = 1000" e "maxThreads = 10" potrebbero anche essere ragionevoli. I valori predefiniti sono maxConnections = 10.000 e maxThreads = 200. Con NIO, ogni thread può gestire qualsiasi numero di connessioni, passare avanti e indietro mantenendo la connessione, quindi non è necessario eseguire tutto il normale handshaking, che richiede in particolare tempo con HTTPS, ma anche un problema con HTTP. È possibile regolare il parametro "keepAlive" per mantenere le connessioni in giro più a lungo e questo dovrebbe accelerare tutto.

3

Da Tomcat documentation, per il blocco di I/O (BIO), il valore predefinito di maxConnections è il valore di maxThreads meno che Executor (pool di thread) viene utilizzato in questo caso, il valore di al suo posto verranno utilizzati i 'maxThreads' di Executor. Per l'IO non bloccante, non sembra dipendere da maxThreads.

+0

Downvoter, si prega di spiegare. – Swapnil

+3

Non sono il downvoter, ma penso che tu non abbia risposto alla domanda. Hai semplicemente spiegato quali sono le impostazioni predefinite, senza insegnare al richiedente i concetti e la domanda riguarda i concetti. –

+0

Capito. Ho preso la domanda come chiedendo la relazione tra loro piuttosto che ciò che in realtà significano. – Swapnil

Problemi correlati