| formula.queue.maxage |
h |
24 |
Sí |
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
() 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 |
Sí |
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 |
Sí |
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 |
Sí |
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". |