Red de conocimiento informático - Problemas con los teléfonos móviles - La configuración springboot max-http-header-size provoca un desbordamiento de memoria

La configuración springboot max-http-header-size provoca un desbordamiento de memoria

Durante la prueba de estrés de los servicios en el entorno de prueba, encontramos que:

Ocurrió OOM cuando el hilo estaba procesando el programa porque no podía asignar más memoria en el montón

Al verificar el comando jstat -gcutil pid, se encuentra que la memoria en cada área del jvm está llena y que Full GC se ejecuta continuamente.

Enlace de descripción del comando GC

Paso uno: use jstack para exportar la información de la pila del servicio

jmap -dump: live, format=b, file= outfile. dump pid

Paso 2: use jvisualvm para abrir el archivo exportado

Una cosa a tener en cuenta es que en escenarios donde el tamaño de los datos transmitidos no está limitado en diferentes versiones de tomcat, maxPostSize ¡La configuración de valores no es la misma!

Diferencias específicas:

Establecer maxPostSize en un valor menor o igual a 0 antes de tomcat7.0.63 puede significar que no hay restricción

Establecer maxPostSize menor o igual a 0 en tomcat7.0.63 y posteriores Un valor de 0 puede significar que no hay límite

Si se establece maxPostSize="0" después de tomcat7.0.63, no se obtendrán los datos transmitidos.