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.