Red de conocimiento informático - Material del sitio web - Cómo optimizar la configuración de Tomcat

Cómo optimizar la configuración de Tomcat

Tomcat tiene muchos aspectos. Presentaré métodos de optimización desde cuatro aspectos: memoria, concurrencia y caché.

1. Optimización de la memoria de Tomcat

La optimización de la memoria de Tomcat es principalmente para optimizar los parámetros de inicio de Tomcat. Podemos configurar los parámetros JAVA_OPTS en el script de inicio de Tomcat catalina.sh.

Descripción del parámetro JAVA_OPTS

-server habilita la versión del servidor de jdk;

-memoria mínima Xms al inicializar la máquina virtual java;

-Xmx La memoria máxima que puede utilizar la máquina virtual Java;

-XX:PermSize Área de reserva permanente de memoria

-XX:MaxPermSize Área máxima de reserva permanente de memoria

Configuración de parámetros del servidor

Hoy en día, la memoria del servidor de la empresa generalmente se puede aumentar hasta un máximo de 2G, por lo que se puede adoptar la siguiente configuración:

JAVA_OPTS='-Xms1024m - Xmx2048m -XX:PermSize=256M -XX: MaxNewSize=256m -XX:MaxPermSize=256m'

Una vez completada la configuración, puede reiniciar Tomcat y ejecutar el siguiente comando para verificar si la configuración surte efecto:

Primero verifique el número de proceso de Tomcat:

sudo lsof -i:9027

Podemos ver que el número de proceso de Tomcat es 12222.

Comprueba si la configuración ha surtido efecto:

sudo jmap – heap 12222

Podemos ver que parámetros como MaxHeapSize han surtido efecto. ,

2. Optimización de la concurrencia de Tomcat

1. Configuración de los parámetros relacionados con la conexión de Tomcat

en el archivo de configuración de Tomcat server.xml Medio

1>Descripción del parámetro

minProcessors: el número mínimo de subprocesos de conexión inactivos, utilizado para mejorar el rendimiento del procesamiento del sistema, el valor predeterminado es 10

maxProcessors: el número máximo de subprocesos de conexión, es decir: el número máximo de solicitudes procesadas simultáneamente, el valor predeterminado es 75

acceptCount: el número máximo de conexiones permitidas, debe ser mayor o igual a maxProcessors, el valor predeterminado es 100

enableLookups: si se debe revertir Verifique el nombre de dominio, el valor es: verdadero o falso. Para mejorar las capacidades de procesamiento, se debe establecer en falso

connectionTimeout: tiempo de espera de la conexión de red, unidad: milisegundos. Establecerlo en 0 significa que nunca expirará, lo cual es una configuración peligrosa. Normalmente se establece en 30000 milisegundos.

Los parámetros relacionados con el número máximo de conexiones son maxProcessors y AcceptCount. Si desea aumentar la cantidad de conexiones simultáneas, debe aumentar estos dos parámetros al mismo tiempo.

El número máximo de conexiones permitidas por el servidor web también está sujeto a la configuración de los parámetros del kernel del sistema operativo. Por lo general, es de aproximadamente 2000 para Windows y aproximadamente 1000 para Linux.

2>Ejemplo de configuración en Tomcat

protocol="HTTP/1.1"

maxHttpHeaderSize = "8192"

minProcessors="100"

maxProcessors="1000"

acceptCount="1000"

redirectPort=" 8443 "

disableUploadTimeout="true"/>

2. Ajustar la capacidad de procesamiento concurrente del conector

1>Descripción del parámetro

maxThreads El número máximo de subprocesos solicitados por el cliente

minSpareThreads El número de subprocesos de socket creados cuando se inicializa Tomcat

maxSpareThreads El número máximo de subprocesos de socket inactivos para el conector Tomcat

enableLookups Si se establece Si es verdadero, se admite la resolución de nombres de dominio y la dirección IP se puede resolver en un nombre de host

redirectPort reenvía las solicitudes de los clientes al puerto de redirección basado en SSL cuando se requiere un canal seguro

acceptAccount El número máximo de colas de puertos de escucha. Cuando están llenas, las solicitudes de los clientes serán rechazadas (no puede ser menor que maxSpareThreads)

connectionTimeout tiempo de espera de conexión

minProcessors El número mínimo de subprocesos de procesamiento cuando se crea el servidor

maxProcessors El número máximo de subprocesos de procesamiento simultáneos del servidor

URIEncoding URL de codificación unificada

2>Ejemplo de configuración en Tomcat

protocol="HTTP/1.1"

maxHttpHeaderSize="8192"

maxThreads ="1000"

minSpareThreads="100"

maxSpareThreads="1000"

minProcessors="100"

maxProcessors=" 1000"

enableLookups="false"

URIEncoding="utf-8"

acceptCount="1000"

redirectPort=" 8443"

disableUploadTimeout="true"/>

3.Optimización de caché de Tomcat

1>Descripción del parámetro

la compresión se activa la función de compresión

compressionMinSize habilita el tamaño del contenido de salida comprimido, aquí el valor predeterminado es 2 KB

tipo de compresión compressableMimeType

connectionTimeout define el tiempo de espera para establecer una conexión de cliente. Si es -1, significa que el tiempo para establecer una conexión de cliente no está limitado

2 >Ejemplo de configuración en Tomcat

protocol="HTTP/1.1"

maxHttpHeaderSize="8192"

maxThreads="1000"

minSpareThreads="100"

maxSpar

eThreads="1000"

minProcessors="100"

maxProcessors="1000"

enableLookups="false"

compresión= "on"

compressionMinSize="2048"

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

connectionTimeout="20000"

URIEncoding="utf-8"

acceptCount="1000"

redirectPort="8443"

disableUploadTimeout="true"/>

4. Configuración de referencia

1>Configuración anterior

Consulte la red y configure el servidor de la siguiente manera, tome Ven y comparte:

protocol="HTTP/1.1"

maxHttpHeaderSize="8192"

maxThreads="1000"

minSpareThreads="25"

maxSpareThreads="75"

enableLookups="false"

compresión ="on"

compressionMinSize="2048"

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

connectionTimeout="20000"

URIEncoding="utf-8"

acceptCount="200"

redirectPort="8443"

disableUploadTimeout="true" />

Más tarde se descubrió que se produjo un cuello de botella en el rendimiento cuando el número de visitas alcanzó más de 3 millones.

2>Configuración modificada

protocol="HTTP/1.1"

maxHttpHeaderSize="8192 "

maxThreads="1000"

minSpareThreads="100"

maxSpareThreads="1000"

minProcessors="100 "

maxProcessors="1000"

enableLookups="false"

compression="on"

compressionMinSize="2048"

compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

connectionTimeout="20000"

URIEncoding= "utf -8"

acceptCount="1000"

redirectPort="8443"

disableUploadTimeout="true"/>