El registro de rendimiento contiene detalles acerca de cuánto lleva ejecutar un trabajo o un servicio. Incluye información general de rendimiento para el trabajo o el servicio asó como información de rendimiento para cada etapa del flujo de datos del trabajo y el servicio. Puede utilizar esta información para identificar cuellos de botella en su flujo de datos observando el tiempo de ejecución y el tiempo de procesamiento para cada etapa. Una gran diferencia entre el tiempo de ejecución y el tiempo de procesamiento significa que la etapa pasa mucho tiempo esperando los datos de una etapa anterior. Esto puede indicar que una etapa anterior es un cuello de botella en el flujo de datos. Observe que para los receptores, una gran diferencia entre el tiempo de ejecución y el tiempo de procesamiento no indica necesariamente un problema de rendimiento ya que los receptores generalmente tienen que esperar los primeros registros del resto del flujo de datos.
Para habilitar el control de rendimiento para un trabajo o servicio, utilice el comando performancemonitor enabled set de Utilidad de administración.
El registro de rendimiento se ubica en su Spectrum Technology Platform servidor en la siguiente ubicación:
SpectrumDirectory\server\logs\performance.log
El registro de rendimiento contiene una fila para cada ejecución de un trabajo o servicio controlado. Es un registro de distribución que consta de un máximo de cinco archivos. Cada archivo está limitado a 10 MB en tamaño. Una vez alcanzado el límite, los datos de rendimiento más antiguos se eliminan cuando se registran nuevos datos de rendimiento.
appender
en el archivo de configuración logback.xml. Para obtener más información, consulte Archivo de configuración de Logback.Cada entrada en el registro de rendimiento contiene la siguiente información. Para facilitar la lectura, a continuación se muestran saltos de línea y sangrías. En el registro real, la entrada es una sola línea.
Date Time [performance] { "username":"UserName", "dataflowId":"DataflowName", "runMode":"BatchOrRealTime", "elapsedTime":Nanoseconds, "stageInfo":[ { "stageName":"Name", "stageLabel":"Label", "options":{ OptionsList }, "recordsRead":Count, "recordsWritten":Count, "executionTime":Nanoseconds, "processingTime":Nanoseconds "readBlockingTime":Nanoseconds "writeBlockingTime":Nanoseconds "readBlockingPercent":Percentage "writeBlockingPercent":Percentage } ] }
Donde:
- username
- El usuario que ejecutó el trabajo o servicio.
- dataflowID
- El nombre del servicio o trabajo como se define en Spectrum Enterprise Designer.
- runMode
- Indica si es una entrada de registro para trabajo o servicio. Una de las siguientes:
- Batch
- La entrada de registro es para un trabajo.
- RealTime
- La entrada de registro es para un servicio.
- elapsedTime
- El tiempo en nanosegundos que le llevó ejecutar el trabajo o servicio solicitado.
- stageInfo
- Menciona información del tiempo de ejecución para cada etapa del flujo de datos. Se menciona la siguiente información para cada etapa:
- stageName
- El nombre permanente de la etapa.
- stageLabel
- El nombre definido por el usuario de la etapa. La etiqueta de etapa aparece en el lienzo en Spectrum Enterprise Designer.
- options
- Si no se especificó ninguna opción en el tiempo de ejecución, dichas opciones y sus ajustes se incluyen aquí.
- recordsRead
- El número total de registros que pasaron a la etapa a través de todos los puertos de entrada de la etapa.
- recordsWritten
- El número total de registros que escribió la etapa para todos sus puertos de salida.
- executiontime
- La cantidad de tiempo de cuando la etapa procesó su primer registro y cuando procesó su último registro. Esto incluye el tiempo en que la etapa estuvo inactiva mientras esperaba los datos de otras etapas en el flujo de datos.
- processingtime
- La cantidad de tiempo que la etapa pasó de manera activa procesando registros, sin incluir el tiempo que estuvo inactiva mientras esperaba otras etapas del flujo de datos.
- readBlockingTime
- La cantidad de tiempo de bloqueo durante la espera para leer el siguiente registro. Si hay un largo tiempo de bloqueo de la lectura significa que un proceso anterior está tardando más tiempo en esta etapa, y puede indicar que es necesario realizar ajustes adicionales.
- writeBlockingTime
- La cantidad de tiempo de bloqueo durante la espera para escribir el siguiente registro. Si hay un largo tiempo de bloqueo de la escritura significa que un proceso anterior está tardando más tiempo en esta etapa, y puede indicar que es necesario realizar ajustes adicionales
- readBlockingPercent
- El porcentaje del tiempo total de ejecución en que una etapa bloqueó la lectura de un registro.
- writeBlockingPercent
- El porcentaje del tiempo total de ejecución que una etapa bloqueó la escritura de un registro.