es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Los trabajos programados de Talend se quedan dormidos aleatoriamente durante 45 minutos sin hacer nada (JDK 1.8 Talend v6)

Estamos experimentando algo extraño en un entorno de producción. Una serie de trabajos Talend (Talend V6, JDK 1.8… desafortunadamente, las versiones no se pueden actualizar debido a restricciones fuera de nuestro control) están programados utilizando el programador de tareas de Windows y funcionan bien el 95% del tiempo, pero a veces se “duermen” durante una ejecución y no hacen nada durante 45/50 minutos. No siempre es el mismo trabajo y no siempre ocurre con el mismo conjunto de datos.

Un ejemplo:

2021-12-17 12:57:52 INFO CommandTargetRegistrySingleton:36 – Registrar: com.lectra.common.command.client.target.http.CommandTargetHttpRemote
2021-12-17 12:57:52 INFO CommandTargetRegistrySingleton:36 – Registrar: com.lectra.common.command.client.target.http.CommandTargetHttpsRemote
2021-12-17 13:47:29 INFO 002IMPORTFABRIC

No hay una razón para los 50 minutos transcurridos entre las dos líneas de registro, de hecho, si volvemos a ejecutar el mismo trabajo con los mismos datos, tenemos unos pocos ms de tiempo de ejecución.

Hemos pedido al cliente que verifique sus servidores y se asegure de que el antivirus no esté escaneando las carpetas temporales utilizadas por los trabajos. Dado que los trabajos suelen tener una duración corta (5 minutos de tiempo de ejecución en promedio), ¿sería útil aumentar el tamaño de Xms? ¿Qué otros consejos de rendimiento deberíamos seguir? ¿Tiene alguna referencia de buena calidad para ajustar el rendimiento de JVM 8?

Gracias por cualquier sugerencia/respuesta.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que los trabajos de Talend están experimentando períodos ocasionales de tiempo de ejecución prolongado, lo cual es motivo de preocupación para el entorno de producción. Con el fin de solucionar este problema, es necesario explorar varias posibles causas:

    1. Escaneo de antivirus: Se debe preguntar al cliente si el software antivirus está escaneando las carpetas temporales durante la ejecución del trabajo. Si efectivamente el software antivirus está escaneando, esto podría introducir una latencia adicional que podría contribuir a los largos tiempos de ejecución.
    2. Configuración de la memoria JVM: Dado que los trabajos generalmente son de corta duración, aumentar el tamaño de Xms no necesariamente mejorará el rendimiento. Sin embargo, comprender los patrones de uso de memoria de los trabajos (utilizando herramientas como JConsole o VisualVM) y configurar el tamaño de la heap en consecuencia puede ayudar.

    3. Optimización del rendimiento: Existen varias técnicas para optimizar el rendimiento de JVM 8, como el uso del recolector de basura G1, la afinación de los grupos de hilos y la reducción de la contención de E/S. Estas técnicas deben explorarse para mejorar el rendimiento.

    4. Análisis de registros: Puede ser útil analizar más detalladamente los registros del trabajo y buscar patrones o eventos específicos que puedan estar causando los retrasos.

    Buenas referencias para la optimización del rendimiento de JVM 8 incluyen la documentación oficial de Oracle, así como libros como “Java Performance: In-Depth Advice for Tuning and Programming Java 8, 11, and Beyond” de Scott Oaks.

Comments are closed.