Tengo una instancia de Tomcat que periódicamente se bloquea por razones desconocidas.

No hay errores en los registros, sólo una línea en el Visor de Sucesos diciendo: «Tomcat terminó inesperadamente».

En un entorno de prueba no he sido capaz de reproducir el problema. Estoy, por tanto, restringe principalmente a la supervisión pasiva del entorno de producción.

El problema no parece estar relacionado con la memoria como el inesperado terminaciones no muestran correlación con el proceso de uso de la memoria.

¿Qué pasos puedo tomar para diagnosticar este problema?

EDICIÓN:

Algunas correcciones o aclaraciones:

En realidad no es una sola instancia de Tomcat, en lugar de varios casos con configuraciones similares.

Sistema operativo es Windows 2003.

Versión de Java es Java 6.

ACTUALIZACIÓN:

Parece que el problema podría estar relacionado con la memoria, después de todo. Descubre algunos de los volcados que fueron creados en el directorio de Tomcat (no …/Tomcat/logs).

La volcados en su mayoría contenían errores tales como:

java.lang.OutOfMemoryError: solicita 32756 bytes para ChunkPool::asignar. De espacio de intercambio (swap?

Esto es inesperado como el proceso a veces se estrelló cuando es el uso de la memoria fue un punto relativamente bajo (en comparación con el uso histórico).

En todos los vertederos, perm gen espacio está al 99% de uso, pero en términos absolutos, este uso no es constante, y es en ninguna parte cerca del límite especificado en -XX:MaxPermSize.

  • Por favor, háganos saber lo que la causa fue, cuando lo encuentre.

2 Comentarios

  1. 1

    Esto me indica que el conjunto de la JVM se estrelló, que es un lugar fuera de lo común. Me gustaría considerar los siguientes pasos:

    • Primero compruebe que el hardware está bien. Ejecutar memtest86+ – http://www.memtest86.com/ o en un cd de Ubuntu – para poner a prueba la memoria. Deja correr un rato para estar absolutamente seguro.
    • A continuación, ver si la versión de Java que usa, es aceptar. Algunas versiones de Java 6 se rompió algunas sutiles funcionalidad. La última versión de Java 5 podría ser una buena solución en este punto.
    • Deshabilitar el Tomcat código nativo para mejorar el rendimiento. Hay una biblioteca nativa de Tomcat utiliza para algo. Puesto que usted tiene un estrellarse JVM, deshacerse de código nativo es un muy buen comienzo.
    • Ver si hay algunas restricciones en la versión de Windows que utilice. Un límite de uso de cpu antes de la terminación, o cualquier otra cuota.
    • Gracias por tu respuesta. Por ahora he descartado fallos de hardware, como el problema se produce en muchos servidores diferentes. El sistema operativo es Windows XP que no parece tener ningún uso de la CPU límites (?) Voy a ver si puedo hacer un downgrade de la versión de Java, y todavía estoy tratando de averiguar cómo deshabilitar Tomcat código nativo.
    • Podría dar más detalles acerca de la «sutil funcionalidad» que se divide en Java 6?
    • No recuerdo los detalles exactos, pero yo tenía algo – Java WebStart creo que se solucionará en una versión posterior de Java 6. Usted puede tener algo similar, ya que ha habido una gran interior de la reelaboración de alrededor de Java 6 update 10, que simplemente no ha sido enviado todavía. De ahí la sugerencia de tratar con Java 5. También tenga en cuenta que usted tiene otras opciones. IBM y Oracle tienen su propia JVM que podría ser digno de la comprobación. También otros Contenedores Web existe. Dependiendo de sus necesidades Jetty, Glassfish o Geronimo podría ser reemplazos.
  2. 1

    Por lo general, si un proceso se bloquea en windows, un archivo de volcado se crea. Carga el archivo de volcado en windbg (depurador de windows) y obtener una traza de la pila del subproceso que provocó la excepción. Esto te dará una mejor idea de cuál es el problema.

    • Esto es cierto también en Windows XP? He estado buscando en realizar cambios en la configuración para obtener un volcado de memoria, pero si uno fue creado por defecto que sería excelente.
    • Sí, es el mismo para windows. Marque la casilla «Inicio y Recuperación» configuración

Dejar respuesta

Please enter your comment!
Please enter your name here