Los temas relacionados con el número de hilos de Tomcat

Cuando el rendimiento presión medida aumenta inicialmente como el número de usuarios, se levantará QPS, cuando después de un cierto umbral, el número de usuarios aumenta QPS no aumenta, o no aumentó significativamente, pero al mismo tiempo un aumento sustancial en el tiempo de respuesta de la solicitud. El umbral que creemos que es el mejor número de hilos.

 

¿Por qué es el número óptimo de hilos se refiere a:

1. demasiadas hebras sólo hará más sobrecarga de la memoria, más sobrecarga de la CPU, pero no ayuda a mejorar los QPS

2. Encuentre el número óptimo de hilos a través de una sencilla configuración, puede hacer que el sistema web más estable, la mayoría de los QPS salida estable y más altos

 

Obtener el mejor número de hilos:

1, la presión medida por el rendimiento por un usuario incrementando lentamente QPS observados, el tiempo de respuesta

2, se calcula según la fórmula: Número de mejor hilo servidor = ((rosca tiempo de CPU hilo latencia +) / hilos de tiempo de CPU) * Número cpu

3, prueba de presión de un solo usuario para comprobar el consumo de CPU, y luego directamente por el porcentaje, a continuación, la prueba de presión, por lo general en las proximidades de este valor debe ser el número óptimo de hilos.

 

Los principales factores que afectan el número óptimo de hilos:

1, IO

2, la CPU

De acuerdo con la fórmula: Número de mejor hilo servidor = ((rosca tiempo de CPU hilo latencia +) / hilos de tiempo de CPU) * cpu Número

Es generalmente IO y CPU. aplicaciones de IO que cuestan más hilos de CPU tiempo de espera será más largo, por lo que el número de hilos se puede abrir más, lo contrario es el número de hilos a ser menos, de hecho, hay dos extremos, el número de solicitudes IO puros, tales como proxy, la lata hilo abrir a muy grandes (demasiado grande debe tener en cuenta la sobrecarga de conmutación hilo), que es básicamente la aplicación de back-end (como este proxy es un proxy search) para tener el número de consultas por segundo, hay que muchos proxy.

Otro es el consumo calculado de la CPU, esta situación sólo puede ser abierto en general el número de hilos para el número de CPU. Pero no quiere decir que esta aplicación no es muy alta QPS, QPS menudo esta aplicación puede ser alto.

 

QPS relaciones y el número de hilos

Después de 1, antes de que el número óptimo de hilos, QPS y la relación de rosca entre sí está aumentando el número de hilos a los mejores hilos, QPS plana, no ascendente, incluso disminuyendo ligeramente, mientras que el tiempo correspondiente siguió aumentando.

2, el mismo en términos de un sistema, más el número de hilos soportados (cuanto más el número óptimo de hilos y cuanto más el número de hilos que no están configurados), mayor será el QPS

 

QPS relaciones y el tiempo de respuesta

1, el sistema de web para una, el tiempo general de respuesta es un tiempo de ejecución de la CPU latencia + composición IO

2, reducir el tiempo de ejecución de la CPU, para QPS tienen que reducir el tiempo de IO mejora sustancial de QPS no es obvia. Si desea mejorar significativamente el CPE, el tiempo de optimización de sistemas centrarse en la optimización de alto consumo de CPU.

 

El número óptimo de hilos y JVM memoria de pila era la relación:

Estos se basan en el cuello de botella en la CPU, para la aplicación java Otro factor que está lleno de GC, queremos asegurarnos de número óptimo de hilos en no ocurre con frecuencia COMPLETO GC

De acuerdo con la fórmula: :( pequeño intervalo de tiempo GC / RT) * (el número de hilos concurrentes * thm) <= el número de hilos concurrentes jóvenes calculados en este caso si el <número óptimo de hilos puede dar como resultado más frecuente GC COMPLETA, la realidad parece en el sistema web es muy pequeña. Pero puede ser simulado.

Así que nos pusimos hilo jboss, se puede aprovechar el número de hilos de fórmula memoria establecidos para obtener el número óptimo de hebras por mediciones de la presión y cálculos, a continuación, establecer el número de hilos.

 

Establecer el número de hilos:

El número de hilos número óptimo de hilos de medición de la presión <verdadero conjunto de <limitar el número de hilos de memoria

Por ejemplo, un hilo para conseguir el mejor sistema de medición de la presión 10 a través del número, entonces el número de hilos de rosca se calcula a través de la memoria 20, se proporciona para el número de hilos jboss 15 es posible, si el 10 directamente, porque el sistema en sí será algunos dependen de los cambios en el sistema y algunos cambios, tales sistemas se basan en una serie de tiempo de respuesta IO pronto se extendió, debido al número de hilos o 10, de hecho, en esta ocasión el número óptimo de las discusiones se han convertido en 13, y 10, ya que estamos muertos, su QPS resultado fue el descenso, pero si es superior a 20, lo hará de nuevo causa gc COMPLETO con mucha frecuencia, que a su vez afecta a la disminución de QPS.

 

jboss el número de hilos:

Para jboss, establecer el número de hilos para uso depende del tipo de conexiones de rosca, tales como http, AJP etc.

http y AJP ajustes son exactamente lo mismo, muy simple:

Para AJP, por ejemplo, o encontrar server.xml de Tomcat-server.xml:

El número predeterminado de hilos es 200

 <Puerto conector = "8009" dirección = "$ {} jboss.bind.address" ConnectionTimeout = "15000" protocolo = "AJP / 1.3"  maxThreads = "200"  MinSpareThreads = "40" MaxSpareThreads = "75" MaxPostSize = "512000 "acceptCount =" 300" bufferSize = "16384" emptySessionPath = "" enableLookups = "falsos" redirectPort = "8443" useBodyEncodingForURI = "true" />

Aquí el número predeterminado de hilos en el 20, por supuesto, otro número mínimo apropiado de hebras en espera y el número máximo de hebras en espera también hacer algunos ajustes:

<Puerto conector = "8009" dirección = "$ {} jboss.bind.address" ConnectionTimeout = "15000" protocolo = "AJP / 1.3"  maxThreads = "20"  MinSpareThreads = "20" MaxSpareThreads = "20" MaxPostSize = "512000 "acceptCount =" 300" bufferSize = "16384" emptySessionPath = "" enableLookups = "falsos" redirectPort = "8443" useBodyEncodingForURI = "true" />

Publicados 168 artículos originales · elogios ganado 16 · Vistas a 90000 +

Supongo que te gusta

Origin blog.csdn.net/ajax_yan/article/details/104862810
Recomendado
Clasificación