Ejemplo de cómo afinar el Scheduler

<< Clic para mostrar Tabla de Contenidos >>

Ejemplo de cómo afinar el Scheduler

 

Ejemplo de cómo afinar el Scheduler

  •     Ejemplo de escalamiento del Scheduler
  •         Primer escenario: rendimiento óptimo
  •         Segundo escenario: afinar el Scheduler
  •         Tercer escenario: escalar horizontalmente el servidor
  • Ejemplo de escalamiento del Scheduler

    A modo de ejemplo, hemos definido un escenario con las siguientes características:

     

    El 75% de las tareas son tareas de servicio configuradas como actividades asincrónicas.

    La tasa de creación de casos es un caso por hora.

    Cada caso tiene en promedio 25 actividades asincrónicas ejecutadas en paralelo.

     

    Primer escenario: rendimiento óptimo

    Debido a la gran demanda de actividades asincrónicas, la tabla ASYNCWORKITEM se consulta constantemente para revisar las tareas pendientes del Scheduler. Con los siguientes resultados:

     

    Scheduler_01

     

    Este escenario muestra que no hay un incremento en las tareas pendientes, ni un uso de CPU superior al 60%, por lo tanto, no es necesario ajustar o escalar.

     

    Segundo escenario: afinar el Scheduler

    En un segundo escenario, el sistema se monitorea con los siguientes resultados:

     

    Scheduler_02

     

    Existe evidencia de que el número de tareas pendientes que debe ejecutar el Scheduler es cada vez mayor y aumenta con el tiempo, lo que significa que el Scheduler está encolando tareas. Sin embargo, el uso de la CPU permanece en promedio por debajo del 60%, por lo tanto, puede ajustar el Scheduler para evitar tener una cola acumulativa de tareas pendientes.

     

    Para ajustar esto, puede aumentar el número de hilos para actividades asincrónicas. Puede ajustar MaxThreadsForAsynchWorkItems.

     

    Después de ajustar el parámetro, el número de tareas pendientes comienza a disminuir para llegar a cero tareas pendientes.

     

    note_pin

    Debe evaluar si la carga del Scheduler se debe a tareas asincrónicas, trabajos personalizados u otro tipo de trabajo. Debe comparar el número de tareas pendientes de la tabla ASYNCHWORKITEM y la tabla JOB. Dependiendo de esto, puede aumentar los hilos para elementos asincrónicos (MaxThreadsForAsynchWorkItems) o para otro tipo de trabajos (MaxThreadsForJobs o MaxThreadsForCustomJobs).

     

    Tercer escenario: escalar horizontalmente el servidor

    En el tercer escenario, el sistema se monitorea durante los mismos tiempos con los siguientes resultados:

     

    Scheduler_03

     

    Las tareas pendientes todavía se están encolando debido a que hay una tendencia creciente en las tareas pendientes (barras azules). Pero, en este escenario, el promedio de uso de la CPU es de alrededor del 80%, por encima del límite sugerido del 60%. Estas métricas muestran que el sistema está sobrecargado y que los recursos de la CPU no son suficientes para manejar todas las solicitudes del Scheduler.

     

    En este escenario, primero debe evaluar si es posible escalar el número de procesadores lógicos de su CPU. En caso afirmativo, puede aumentar el número de núcleos o procesadores lógicos, y luego buscar ajustar el Scheduler aumentando los hilos para tareas asincrónicas, como en el segundo escenario.

     

    Si no es posible escalar horizontalmente los procesadores lógicos en el mismo servidor, puede buscar escalar su infraestructura con una instancia adicional del Scheduler. Nuestra recomendación es mantener un máximo de dos Schedulers por servidor. Sin embargo, esto depende del rendimiento de su hardware y si tiene más software en el mismo servidor.

     

    Scheduler_04

    En este articulo