Solución de problemas de bloqueo de Tomcat

Fenómeno

Tomcat se bloqueó durante la ejecución, pero afortunadamente, el programa de monitoreo del servidor lo reinició automáticamente, por lo que no hubo interrupción del servicio a largo plazo en el entorno de producción.

 

El problema de bloqueo ocurre por primera vez, se considera ocasional. Sin embargo, a los pocos días, Tomcat volvió a fallar, por lo que es necesario investigar la causa específica del bloqueo. Después de una consideración preliminar, se especula que la memoria ocupada por Tomcat es demasiado grande, por lo que el sistema lo elimina y el servidor está listo para ser actualizado.

Solucionar problemas

1. El uso de memoria de Tomcat es demasiado grande y el sistema lo elimina.

Asumiendo que es causado por el sistema, generalmente habrá registros del sistema:

gato /var/log/mensajes

Después de verificar, no se encontraron registros relacionados con kill y mem.

2. El Jvm encuentra un error fatal y se bloquea.

Si Jvm encuentra un error fatal y falla, se deben generar archivos de informe de error como hs_err_pid.log en el directorio del programa:

ll tomcat/papelera

No se encontraron registros de fallas después de buscar.

3. Tomcat encontró un error y se bloqueó.

Ver el registro de Tomcat directamente:

gato tomcat/logs/catalina.out

La cantidad de registros es muy grande. Después de dividir y ubicar el archivo adjunto de la fecha del bloqueo, finalmente encontré pistas:

2022-06-14 08:29:14,121 [ERROR] ControllerHelper: 139 - error de valor de lectura: {g:

*** Error en `//bin/java': malloc(): corrupción de memoria: 0x00007fb4440a1de0 ***

======= Seguimiento: =========

/lib64/libc.so.6(+0x82aa6)[0x7fb50ef30aa6]

/lib64/libc.so.6(__libc_malloc+0x4c)[0x7fb50ef336fc]

/usr/lib64/libse.so(Java_com_s_Se_d+0x142)[0x7fb39abb1cec]

[0x7fb4fa7206c7]

======= Mapa de memoria: ========

00400000-00401000 r-xp 00000000 fd:01 1307450 /usr/java/jdk1.8.0_131/jre/bin/java

00600000-00601000 rw-p 00000000 fd:01 1307450 /usr/java/jdk1.8.0_131/jre/bin/java

00828000-009c9000 rw-p 00000000 00:00 0 [montón]

6c7c00000-708a00000 rw-p 00000000 00:00 0

708a00000-76d400000 ---p 00000000 00:00 0

76d400000-783080000 rw-p 00000000 00:00 0

783080000-7c0000000 ---p 00000000 00:00 0

7c0000000-7c1580000 rw-p 00000000 00:00 0

7c1580000-800000000 ---p 00000000 00:00 0

7fb32db7e000-7fb32db81000 ---p 00000000 00:00 0

7fb32db81000-7fb32dc7f000 rw-p 00000000 00:00 0

7fb32dc7f000-7fb32dc82000 ---p 00000000 00:00 0

Se puede ver que durante la ejecución de Tomcat, la biblioteca de código subyacente (archivo so) encontró un error de memoria, lo que provocó que Tomcat fallara. Específicamente, el archivo de la biblioteca de errores es el siguiente:

usr/lib64/libse.so(Java_com_s_Se_d+0x142)[0x7fb39abb1cec]

Es decir, hay un problema con el archivo de biblioteca libse.so.Este archivo de biblioteca no está incluido en el sistema y es la biblioteca de código subyacente de la empresa, por lo que puede repararse.

Supongo que te gusta

Origin blog.csdn.net/Dancen/article/details/125388556
Recomendado
Clasificación