En pocas palabras: mi instancia de JBoss está funcionando bien, pero después de algunos días su rendimiento se está degradando lentamente.Jboss se ralentiza después de un tiempo
Detallada: Tengo una configuración con JBoss 5.1.0-GA y Java 1.6.0_18-b07 (x64) ejecutándose en una caja RHEL 4 de 64 bits. El hardware es una máquina virtual con 8 núcleos Xeon X5550/20G ram.
El producto implementado en JBoss contiene un servicio web en el que se realiza una prueba de resistencia. Ninguna base de datos está involucrada en el proceso.
Las pruebas se realizan utilizando soapui con 4 hilos y las pruebas están configuradas para crear un 20% de uso de la CPU.
Digamos que, al principio, los tiempos de respuesta promedio son 300 ms. Después de 2 días, los tiempos de respuesta son ahora de 600 ms, lo que no entiendo. supuesto que lo hice algunas comprobaciones:
- No hay pérdidas de memoria (confirmado con JProfiler)
- Montón mem está siempre alrededor de un 25-50%, el uso del espacio permanente es de 50%
- GC es casi nunca ocupados
- Todos los hilos están inactivos después de inspeccionar un vertedero de hilo
Mientras que hacer algunas investigaciones adicionales, que un perfil de la CPU con JProfiler al principio (cuando aún es rápido), y en el (lento) final hizo . ¡Lo que veo entonces es que cada llamada es 100% más lenta! Incluso las llamadas a un simple Map # put(). (el número de invocaciones y el contenido de estos mapas son los mismos). Al ejecutar un generador de perfiles, no hay signos de hilos bloqueados, solo ejecuta hilos.
¿Alguien tiene una pista de lo que está causando la degradación del rendimiento? Gracias!
Actualización: resuelto la degradación del rendimiento mediante la mejora de la versión Java 1.6.0_24 a!
Mientras no tenía opciones, revisé todas las notas de la versión de java vm y descubrí una solución de rendimiento y fiabilidad en 1.6.0_23. Consulte también 1.6.0_23 release notes
Después de la actualización de jvm, el rendimiento permanece igual y no se degrada durante días.
Felicidades -. Puede publicar su "actualización" como respuesta y luego aceptar esto más adelante como buena respuesta. –