Pregunta

He fijado Apache Tomcat + con mod_jk y 2 servidores. Cada servidor tiene su propio par de Apache Tomcat +, y cada petición está siendo servida por los trabajadores de balanceo de carga Tomcat y 2 servidores.

Tengo una pregunta acerca de cómo se deben establecer maxClient de Apache Tomcat y maxThread de.

Los números predeterminados son, Apache: maxClient=150, Tomcat: maxThread=200

En esta configuración, si sólo tenemos la configuración del servidor 1, que funcionaría muy bien como Tomcat trabajador nunca recibe las conexiones entrantes más de 150 a la vez. Sin embargo, si estamos balanceo de carga entre 2 servidores, podría ser posible que Tomcat trabajador recibe 150 + (un número desde otro servidor) y hacer que el desbordamiento maxThread como SEVERE: All threads (200) are currently busy?

Si es así, debería establecer maxThread=300 de Tomcat en este caso?

Gracias

¿Fue útil?

Solución

Configuración maxThreads a 300 debe estar bien - no hay reglas fijas. Depende de si hay conexiones que se negaron.

El aumento de exceso provoca un alto consumo de memoria, pero Tomcat de producción son conocidos para funcionar con 750 hilos. Vea aquí también. http://java-monitor.com/forum/showthread.php?t=235

¿Usted realmente tiene el error SEVERE? He probado en nuestro Tomcat 6.0.20 y lanza un mensaje de INFO cuando se cruza la maxThreads.

INFO: Maximum number of threads (200) created for connector with address null and port 8080

No se niegan las conexiones hasta que se cruzó el valor acceptCount. El valor por defecto es 100.

A partir de la documentación de Tomcat http://tomcat.apache.org/ tomcat-5,5-doc / config / http.html

La máxima longitud de la cola para entrante las solicitudes de conexión cuando todo lo posible hilos de procesamiento solicitud están en uso. Cualquier solicitud recibida cuando la cola está lleno, será rechazado. El valor por defecto valor es 100.

La forma en que funciona es

1) Tal como aumentar el número de solicitudes simultáneas, hilos será creado hasta el máximo configurado (el valor del atributo maxThreads).

Así pues, en su caso, el mensaje "Número máximo de subprocesos (200) creada" aparecerá en este punto. Sin embargo las solicitudes aún se pondrán en cola para el servicio.

2) Si no se reciben solicitudes aún más simultáneas, que se ponen en cola hasta el máximo configurado (el valor del atributo acceptCount).

Así, un total de 300 peticiones puede ser aceptada sin fallo. (Asumiendo que su acceptCount está en defecto de 100)

3) Cruzando este número tiros errores conexión rechazada, hasta que los recursos están disponibles para procesarlos.

Así que debe estar bien hasta que llegue el paso 3

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top