Herramientas de supervisión
ThingWorx Platform se basa en tecnología de Java. Las herramientas de diagnóstico y supervisión que se explican en esta sección están diseñadas para recopilar métricas de rendimiento y otros datos de la máquina virtual Java (JVM). Utilice estas herramientas para supervisar las soluciones de ThingWorx a través de la capa de JVM. Las herramientas obtienen los siguientes datos de JVM:
Operaciones de memoria: se debe verificar si el servidor tiene suficientes recursos de memoria asignados y cuánto tardan las operaciones de recopilación de basura (GC) de JVM.
Rendimiento de los subprocesos: se debe verificar si hay incidencias de transacciones o subprocesos largos que puedan provocar incidencias de rendimiento en la solución de ThingWorx.
Supervisión directa de JVM
Oracle o el subsistema de soporte proporcionan las herramientas de supervisión directa de JVM. La recopilación de datos directamente desde la JVM es una buena alternativa para identificar y corregir problemas de rendimiento. Se recomienda supervisar los siguientes diagnósticos de JVM para las soluciones de ThingWorx:
Supervise el rendimiento de la memoria a lo largo del tiempo mediante el registro de recopilación de basura, una función integrada de JVM.
Recopilación y análisis en el nivel de subproceso con el subsistema de soporte.
Supervisión del uso de la memoria de un servidor ThingWorx
La máquina virtual Java (JVM) gestiona su propia memoria (montón) de forma nativa mediante el recolector de basura (GC). GC permite identificar y quitar objetos del montón de Java que no se están utilizando. El uso de la memoria de un servidor ThingWorx se puede supervisar mediante el registro de los detalles que recopila GC.
El fichero de registro de GC se puede utilizar para identificar tendencias en el consumo de memoria. En función de las tendencias, se puede verificar si se debe cambiar el parámetro de montón máximo del servidor Apache Tomcat para obtener un mejor rendimiento. Por lo tanto, se recomienda configurar el registro de GC en el servidor Tomcat de Apache.
JVM tiene señalizadores a los que se llama en tiempo de ejecución. Estos señalizadores se utilizan para escribir estadísticas sobre eventos de GC, como el tipo de evento de GC, la cantidad de memoria consumida al inicio del evento, la cantidad de memoria que libera el evento de GC y la duración del evento de GC.
El fichero de registro de GC se sobrescribe cada vez que se inicia JVM. Se recomienda realizar una copia de seguridad del fichero de registro durante el reinicio del servidor. De este modo, se puede analizar si el uso de la memoria ha provocado el reinicio del servidor.
Se pueden utilizar herramientas de análisis como, por ejemplo, GCEasy.io y Chewiebug GC Viewer, para analizar los registros de la recopilación de basura.
Procedimiento para configurar el registro de recopilación de basura en Linux (setenv.sh)
Realice los siguientes pasos para configurar el registro de recopilación de basura en Linux:
1. Abra el script $CATALINA_HOME/bin/setenv.sh en un editor de texto.
Es posible que el fichero del script setenv.sh no esté disponible en todas las instalaciones. Si el fichero no existe, cree un fichero setenv.sh nuevo en la ubicación.
2. Añada el siguiente texto al final de la variable JAVA_OPTS entre comillas dobles.
Para Java 8:
-XX:+UseG1GC -Xloggc:/logs/gc.log -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
Si no se especifica JAVA_OPTS en el fichero setenv.sh o el fichero setenv.sh es nuevo, añada la siguiente línea en el fichero:
JAVA_OPTS=”-XX:+UseG1GC -Xloggc:/logs/gc.log -XX:+PrintGCTimeStamps -XX:+PrintGCDetails”
Para Java 9 y versiones posteriores:
-Xlog:gc:file=/logs/gc.log:time,level,tags
Si no se especifica JAVA_OPTS en el fichero setenv.sh o el fichero setenv.sh es nuevo, añada la siguiente línea en el fichero:
JAVA_OPTS="-Xlog:gc:file=/logs/gc.log:time,level,tags"
Debe tenerse en cuenta lo siguiente:
La opción -XX:+PrintGC permite devolver un registro de salida menos detallado. Por ejemplo, en el registro de salida se incluyen los siguientes detalles:
2017-10-10T13:22:49.363-0400: 3.096: [GC (Allocation Failure) 116859K->56193K(515776K), 0.0728488 secs]
La opción -XX:+PrintGCDetails permite devolver el registro de salida detallado. Por ejemplo, en el registro de salida se incluyen los siguientes detalles:
2017-10-10T13:18:36.663-0400: 35.578: [GC (Allocation Failure) 2017-10-10T13:18:36.663-0400: 35.578: [ParNew: 76148K->6560K(76672K), 0.0105080 secs] 262740K->193791K(515776K), 0.0105759 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
3. Añada las siguientes líneas al final del script setenv.sh. Este código realiza automáticamente una copia de seguridad de un fichero gc.out existente en gc.out.restart antes de iniciar el servidor Apache Tomcat:
# Backup the gc.out file to gc.out.restart when a server is started.
if [ -e "$CATALINA_HOME/logs/gc.out" ]; then
cp -f "$CATALINA_HOME/logs/gc.out" "$CATALINA_HOME/logs/gc.out.restart"
fi
4. Guarde los cambios en el fichero.
5. Reinicie el servicio de Apache Tomcat mediante el controlador de servicios que sea aplicable al sistema operativo.
Procedimiento para configurar el registro de recopilación de basura en Windows (Apache Service Manager)
Realice los siguientes pasos para configurar el registro de recopilador de basura en Windows:
1. En el Explorador de Windows, vaya a <Tomcat_home>\bin.
2. Inicie el ejecutable que incluye w en su nombre. Por ejemplo, Tomcat<version number>w.exe.
3. Pulse en la ficha Java.
4. En el campo Java Options, añada las siguientes líneas:
Para Java 8:
-Xloggc:logs/gc_%t.out
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
Para Java 9 y versiones posteriores:
-Xlog:gc:file=/logs/gc.log:time,level,tags
Para obtener información sobre las opciones -XX:+PrintGC y -XX:+PrintGCDetails, consulte la sección Procedimiento para configurar el registro de recopilación de basura en Linux (setenv.sh).
5. Pulse en Aplicar para guardar los cambios realizados en la configuración del servicio.
6. En la ficha General, pulse en Detener.
7. Pulse en Inicio para reiniciar el servicio de Apache Tomcat.
El nuevo registro de recopilación de basura se escribe en el fichero %CATALINA_HOME%\logs\gc_<Tomcat_Restart_Timestamp>.out.
Recopilar datos de diagnóstico con el subsistema de soporte
Para obtener más información, consulte Subsistema de soporte.
VisualVM y otras herramientas de supervisión de JMX
VisualVM es una herramienta de supervisión que recopila datos para soluciones Java. VisualVM se puede utilizar para supervisar soluciones de ThingWorx. Permite recopilar información sobre la utilización de la memoria y la CPU. Permite generar y analizar volcados de montón y realizar seguimientos de las pérdidas de memoria. Se pueden recopilar datos para soluciones que se ejecutan localmente o en ordenadores remotos.
VisualVM proporciona una interfaz que permite ver gráficamente la información sobre las soluciones Java.
VisualVM está disponible junto con Java JDK. Consulte la sección en el centro de ayuda de ThingWorxConfiguración de la opción de Apache Tomcat Java para obtener más información sobre la configuración de conexión de VisualVM.
En otras herramientas que se integran con JVM mediante Java Management Extensions (JMX) también se proporcionan funciones de supervisión similares.
VisualVM permite capturar las siguientes métricas clave que afectan al rendimiento de la solución:
Rendimiento de la memoria de JVM
Tiempo necesario para ejecutar subprocesos
Memoria del sistema operativo y métricas de CPU
Supervisión de agrupaciones de conexiones de base de datos
VisualVM permite realizar un seguimiento de los datos en tiempo real durante aproximadamente 20 minutos.
Supervisión de registros de aplicaciones de ThingWorx
Los registros de la solución ThingWorx se deben supervisar periódicamente para comprobar si hay errores u otras operaciones anómalas. Los errores se pueden producir en la capa de la plataforma o en los scripts personalizados que se utilizan con ThingWorx. Se recomienda revisar los mensajes del registro de errores diariamente.
Configuración de la opción LoggingSubsystem para escribir referencias de pila para errores
La opción Activar seguimiento de pila de LoggingSubsystem permite escribir mensajes de error y las referencias de pila asociadas en ficheros de registro. Por defecto, LoggingSubsytem no está configurado para escribir referencias de pila (pilas de llamadas) en el disco. Defina la opción Activar seguimiento de pila para escribir pilas de llamadas de excepciones y mensajes de error en el fichero ErrorLog.log, que está disponible en la carpeta ThingworxStorage/logs. Se recomienda definir esta opción para tener los detalles de las llamadas de función en la referencia de pila durante la depuración de un error.
Conservación de los registros de aplicación
El nivel de registro determina la cantidad de granularidad que se debe mostrar en los registros. Se recomienda mantener el nivel de registro de la solución en el nivel de detalle mínimo, como Información o Avisar, a menos que se esté solucionando activamente una incidencia. Se debe tener cuidado al aumentar el nivel de detalle del registro a Depurar, Seguimiento o Todo. Esto puede tener un efecto adverso en el rendimiento de ThingWorx. Puede provocar un comportamiento impredecible de la solución si los recursos disponibles en ThingWorx Platform no son suficientes.
Los registros se guardan como ficheros independientes del servidor en la carpeta /ThingworxStorage/logs. Los registros se archivan en la carpeta archives, que se encuentra en la carpeta logs. Las reglas de rotación del registro se basan en las configuraciones de tamaño de fichero y tiempo que están definidas en Configuración de conservación del registro del subsistema de registro. Esta configuración se puede cambiar y aplicar en tiempo de ejecución.
Se pueden especificar las siguientes configuraciones de sustitución incremental en Sistema > Subsistemas > LoggingSubsystem > Configuración:
Tamaño del fichero: el fichero de registro se archiva cuando su tamaño alcanza o supera el tamaño definido en el campo Tamaño máximo de fichero en KB. El tamaño de fichero por defecto para un registro se define en 100.000 KB. El tamaño máximo de fichero que se puede definir es 1.000.000 KB.
Tiempo: los ficheros se sustituyen diariamente a medianoche, cuando se activa un evento de registro. Los registros se mueven a la carpeta archives. Por defecto, si un registro permanece en la carpeta archives durante más de siete días, se borra. El valor por defecto se puede cambiar en el campo Número de días máximo de archivo. Se pueden especificar entre 1 y 90 días.
Es importante supervisar los tamaños de registro. Se deben depurar los ficheros de registro de forma constante realizando una copia de seguridad de los ficheros en primer lugar o descartándolos cuando contengan información obsoleta.
¿Fue esto útil?