Ajuste de la cola de expresiones

El motor de expresiones deberá ajustarse según los recursos del servidor, el recuento de expresiones y la complejidad de cada instalación. Generalmente el proceso implica ajustar y medir repetidamente el rendimiento para un parámetro cada vez hasta que ya no se puede aumentar el rendimiento. Es necesario hacer un seguimiento de los registros. Se necesita un ajuste nuevo cuando se cambia el hardware, la utilización y la configuración.
Como administrador, es necesario comprobar la aplicación siguiente para cada instalación:
Tabla 1. Valor de aplicación de ajuste de cola de expresiones
Valor Unidad Predeterminado Tiempo de ejecución* Descripción Sugerencia de ajuste
formula.queue.maxage h 24 El número máximo de horas que se retiene el historial de la cola de expresiones. Sólo se eliminan las expresiones que se han ejecutado. Esto se hace utilizando una fórmula. Las entradas ejecutadas se retienen a efectos de estadísticas de expresión (Avanzado > Cola de expresiones) y para comprobar la existencia de bucles de evaluación. Al evaluar los bucles, este número se puede reducir en configuraciones de alto rendimiento para evitar que el tamaño de la tabla crezca.
formula.queue.maxsize entradas 500000 El número máximo de entradas en la cola de expresiones. La tarea de limpieza consiste en mantener el recuento de entradas por debajo de este número recortando el historial. Sólo se eliminan las expresiones que se han ejecutado. Esto altera temporalmente el valor maxage. Para mejorar el rendimiento, este número se puede ajustar para mantener bajo el tamaño del historial de colas durante períodos de mucha carga y para ahorrar historial en caso contrario. Una buena aproximación para este número consiste en mantenerlo un poco por debajo del rendimiento promedio durante el periodo de maxage.
formula.execution.batch.size entradas 30 El número de entradas de cola de expresiones que se asignan para una hebra en cada ejecución de asignación. Las entradas se marcan como "iniciada" y la hebra se ejecuta y se completa antes de asignar un lote nuevo. Las expresiones se ejecutan en varias hebras o varios nodos simultáneamente pero siempre por un orden cronológico que tiene en cuenta las dependencias. Si dos expresiones de la cola no están relacionadas, se pueden ejecutar por otro orden que no sea por el que se añadieron. Las entradas de expresión podrían depender del valor de otra entrada. Es posible que no se ejecute la entrada de expresión si la instancia de esa entrada (el valor del que depende la entrada de expresión) no se ejecuta antes de la expresión. Esto y la simultaneidad requieren la asignación para evitar colisiones, orden incoherente y trabajo redundante. La asignación es un poco cara por lo que varias expresiones se asignan a la vez con el requisito anterior y la condición de que se ejecuten por el orden dado. Si se asignan muchas expresiones, se evita la sobrecarga de asignación pero esto "bloquea" la simultaneidad y viceversa. La regla general consiste en mantener este número bajo si las expresiones forman largas cadenas de dependencias y aumentarlo si son cortas o hay pocas dependencias. Puede cambiar este valor en tiempo de ejecución y por lo tanto debería ajustarlo hasta que encuentre un valor óptimo razonable. Los valores menores que 10 o mayores que 200 rara vez son óptimos.
formula.cleanup.interval msecs 1800000 No La frecuencia de limpieza de la cola de expresiones. Aquí se imponen los valores maxage y maxsize. Sólo se realiza el recorte de la cola. La primera limpieza se hace cuando se inicia el servidor, momento en el que se realiza un mantenimiento especial. Además, cada dos semanas se realiza una comprobación de integridad de expresiones de temporizador (por la noche). La mayoría de veces, el valor predeterminado es razonable. Si el rendimiento es alto, la limpieza tarda más, pero se debe realizar más a menudo y viceversa. Por lo tanto, evite aumentar demasiado este valor ya que esto causará fallos en la ejecución o un mal rendimiento si la carga aumenta significativamente de repente (por ejemplo después de una importación o la adición de un atributo).
formula.background.interval msecs 10000 No La frecuencia con la que se comprueba la existencia en la cola de expresiones de expresiones no asignadas pendientes de ejecución. Cuando finaliza un lote, se produce inmediatamente una nueva comprobación sin esperar a que transcurra el intervalo. Si la cola no ha "terminado" una vez transcurrido un nuevo intervalo, se crea una nueva hebra de trabajo para doblar el esfuerzo. En versiones anteriores de Rational Focal Point, la ejecución era asíncrona e inmediata. Cuando las expresiones se movían a la base de datos, esto no era posible sin el riesgo de alcanzar un punto muerto. Este es el intervalo en el que se comprueba la existencia en la cola de expresiones de expresiones nuevas pendientes de ejecución, es decir, el tiempo máximo (más tiempo de ejecución) que el usuario debe esperar a que se ejecute una expresión. Si el intervalo es demasiado breve, consume los recursos innecesariamente. Esto también afecta a la aceleración de la simultaneidad: si la hebra de trabajo iniciada en el intervalo anterior no ha finalizado dentro del intervalo, se inicia otra hebra (hasta thread.per.nodes). Si la aceleración es lenta, puede disminuir este número. Si las expresiones se utilizan en raras ocasiones, puede aumentarlo ligeramente.
formula.max.background.threads.per.node count 2 No El número máximo de hebras simultáneas que ejecutan expresiones para cada nodo. El número máximo real depende dinámicamente de si hay hebras libres en la agrupación de hebras de la aplicación. La aceleración de la simultaneidad descrita en background.interval aumenta el número de hebras de evaluación de expresiones en el nodo, en cada intervalo si hay más trabajo que hacer. Tenga en cuenta que esto es un máximo. Esto requiere la existencia de hebras libres en la agrupación de hebras de la aplicación, que se ajusta automáticamente en función del número de núcleos (virtual o no). También está limitado a no consumir la última hebra de la agrupación. Puede experimentar con este número ya que no interrumpirá ninguna operación. Sin embargo, la mejora del rendimiento no está garantizada y depende mucho de la capacidad de simultaneidad de la base de datos para continuar. Un signo de que esto es demasiado bajo es que la mayoría de las veces, la cola tiene expresiones que no se evalúan.
formula.cleanup.enabled boolean true La limpieza de la cola de expresiones está habilitada de forma predeterminada. Esto nunca debe estar habilitado excepto a efectos de depuración o cuando se ejecutan medidas de rendimiento en las que se debe descartar la limpieza. No es necesario realizar ningún ajuste con este valor, no lo cambie nunca, manténgalo en el valor predeterminado "true".

Comentarios