Cómo afinar el Scheduler de Bizagi en entornos de clúster

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Automation Server > Automation Server - configuración y administración > Mantenimiento y monitoreo del sistema > Configuración y administración del ambiente > Managment Console > Administración de los trabajos programados >

Cómo afinar el Scheduler de Bizagi en entornos de clúster

Introducción

La configuración de Bizagi Scheduler para un mejor rendimiento depende de la configuración de cada entorno. Depende de tres factores: la infraestructura del cliente, el paralelismo y el modelado del cliente. La mejor práctica al ajustar su Bizagi Scheduler es incluir tareas de verificación de rendimiento que funcionen junto con las pruebas de carga. Esto permite que la configuración precisa del Scheduler obtenga la mejor combinación en la que el rendimiento es óptimo.

 

El siguiente documento presenta una breve explicación de las teclas utilizadas para hacer un ajuste fino del Programador. Además, le proporciona detalles sobre los Schedulers master y slave, y detalles sobre cómo puede ajustar el rendimiento para su entorno de producción.

 

Scheduler Master y Slave

Tenga las siguientes definiciones para los Scheduler Master y Slave.

Un Scheduler Master se encargar de coordinar las tareas ejecutadas por cada Scheduler Slave y ejecuta tareas adicionales como las tareas de mantenimiento. Es obligatorio tener uno y solo un Scheduler Master configurado.

Un Scheduler Slave se encarga de procesar una tarea asignada.

 

Archivos de configuración

Para ajustar el Bizagi Scheduler, localice estos archivos:

 

Localice el archivo web.config ubicado en C:\Bizagi\Projects\[NombreProyecto]\WebApplication y ábralo usando el editor de texto de su elección.

 

FineTune_01

 

Localice los archivos BizAgi.Scheduler.Services.exe.config ubicados en la carpeta C:\Bizagi\Projects\[ProjectName]\Scheduler de cada scheduler.

 

FineTune_02

 

Agregue las llaves de configuración necesarias para afinar su Bizagi Scheduler in the <appsettings> key. Ejemplo:

<add key="AsyncTaskWorkingSetSize" value="10"/>

 

Llaves de configuración

De acuerdo con la infraestructura de su proyecto, tenga en cuenta la siguiente configuración mínima:

 

 

Llave de configuración

Descripción

Valor Sugerido/Por defecto

Configuración de Scheduler de hilos

ID_STACK_SIZE

Agregue está llave en los archivos web.config y BizAgi.Scheduler.Services.exe.config de cada scheduler. La llave reduce los bloqueos en la asignación de ID de negocio durante las altas tasas de creación de casos.

El valor por defecto es 50 and for production environments, it is recommended to increase it to 500.

This value should never be decreased and each scheduler must have the same value.

AsynchTaskWorkingSetSize

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.config de cada scheduler. Esta llave define el número de tareas asíncronas a ser recuperada de la base de datos para ser procesado por hilo.

El valor por defecto es 50.

SchedulerAsyncProcessorIntervalInMillis

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.configde cada scheduler. Esta llave establece el tiempo en milisegundos que definen los hilos en el procesador del scheduler interno para esperar la próxima ejecución de las tareas asíncronas cuando se ejecutó el BizagiSchedulerInterval.

El valor sugerido es 500.

JobWorkingSetSize

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.configde cada scheduler. Esta llave define el número de tareas de la pila que se proporcionarán para ser ejecutadas.

El valor sugerido es 10.

SchedulerMaxJobWaitInterval

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.configde cada scheduler. Esta llave define el número de tiempo de ejecución de espera cuando se alcanza el número máximo de trabajos.

El valor sugerido es 1.

LaunchThreadForLog

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.config de cada scheduler. Esta llave defines you need an extra thread to improve the logging.

El valor sugerido es 1.

Habilitar una opción para cada función

MaxThreadsForCustomJobs

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.config de cada scheduler. Esta llave define el número máximo de hilos para ejecutar los trabajos personalizados.

El valor por defecto es 2.

Tenga en cuenta que este número NO PUEDE exceder el número de núcleos de procesador. Por ejemplo, si tiene dos procesadores de cuatro núcleos, el número máximo debe ser 16.

MaxThreadsForJobs

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.config de cada scheduler. Esta llave define el número máximo de hilos para ejecutar los trabajos.

El valor por defecto es 2.

Tenga en cuenta que este número NO PUEDE exceder el número de núcleos de procesador. Por ejemplo, si tiene dos procesadores de cuatro núcleos, el número máximo debe ser 16.

MaxThreadsForAsyncEcm

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.config de cada scheduler. Esta llave define el número máximo de hilos para ejecutar el ECM cuando la función asíncrona está activa.

El valor por defecto es 2.

Tenga en cuenta que este número NO PUEDE exceder el número de núcleos de procesador. Por ejemplo, si tiene dos procesadores de cuatro núcleos, el número máximo debe ser 16.

MaxThreadsForAsynchWorkitems

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.config de cada scheduler. Esta llave define el número máximo de hilos para ejecutar las tareas asíncronas.

El valor por defecto es 10.

Tenga en cuenta que este número NO PUEDE exceder el número de núcleos de procesador. Por ejemplo, si tiene dos procesadores de cuatro núcleos, el número máximo debe ser 16.

Intervalo de ejecución del Scheduler

BizagiSchedulerInterval

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.config de cada scheduler. Esta llave define el tiempo (en segundos) utilizado por Bizagi para procesar las tareas que vienen de la base de datos.

El valor por defecto es 30.

Esta llave se debe incrementar cuando se aumenta el valor de AsynchTaskWorkingSetSize.  Aumente este valor añadiendo 15.

MASTER / SLAVE

DisableAsynchCaseClosing

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.config de cada scheduler. Esta llave se usa para nombrar al scheduler principal y garantizar que este sea el único que ejecuta las tareas de mantenimiento.

El valor por defecto es 0. Configure 0 para el Master scheduler y 1 para el Slave scheduler. Es obligatorio tener uno y solo un programador maestro configurado.

DisableInterfaceErrorLogger

Agregue está llave en el archivo BizAgi.Scheduler.Services.exe.config de cada scheduler. Esta llave se usa para habilitar el registrador de errores de interfaz solo en el scheduler principal y garantizar que este sea el único que registre todos los errores de interfaz.

El valor por defecto es 0. Configure 0 para el Master scheduler y 1 para el Slave scheduler. Es obligatorio tener uno y solo un programador maestro configurado.

 

Afinando el Scheduler

El ajuste de los valores para las llaves mostradas debe realizarse de acuerdo con los resultados de la fase de prueba de rendimiento de su proyecto. Siga estas recomendaciones para ajustar el rendimiento:

 

Se recomienda tener una máquina independiente para los Schedulers.

El rendimiento ideal ocurre cuando el número de workitems asíncronos (llave MaxThreadsForAsynchWorkitems) se procesa en la franja definida por el intervalo de Bizagi Scheduler (llave BizagiSchedulerInterval). Aumente los valores de las llaves AsynchTaskWorkingSetSize y BizagiSchedulerInterval hasta que sus tareas asíncronas se procesen en un tiempo óptimo.

Si alcanza el valor máximo para la llave MaxThreadsForAsynchWorkitems, se recomienda agregar otro Scheduler usando los valores predeterminados y luego, aumentar los valores hasta que tenga el rendimiento ideal.

 

note_pin

Se recomienda realizar un monitoreo continuo de su infraestructura. Si encuentra algún aumento en términos de uso de la memoria o la CPU, debe tomar la decisión si desea ajustar los programadores o realizar cambios en la infraestructura para poder soportar la mayor demanda de recursos.