| Valor | Unidad | Predeterminado | Tiempo de ejecución* | Descripción | Sugerencia de ajuste |
|---|---|---|---|---|---|
| formula.queue.maxage | h | 24 | Sí | El número máximo (no garantizado) de horas que se conserva el historial de la cola de expresión. Sólo se podan las expresiones de ejecución. Esto se realiza mediante el trabajo de limpieza de fórmula. | Las entradas de la cola ejecutada en la tabla de colas de fórmula se conservan como un historial de ejecución. Este historial se utiliza para comprobar los bucles de ejecución y para generar estadísticas. Si las estadísticas no son necesarias, este número podría reducirse en una configuración de alto rendimiento para mantener el tamaño de la tabla bajo. Nunca establezca este valor en cero, ya que una comprobación correcta del bucle requiere, como mínimo, el historial de una hora. |
| formula.queue.maxsize | entradas | 500000 | Sí | El número máximo deseado de entradas en la cola de expresión. El trabajo de limpieza intenta mantener el recuento de entradas por debajo de este número podando el historial. Sólo se podan las expresiones de ejecución. Esto sobrescribe el valor de formula.queue.maxage. | Este número podría reducirse para mantener el tamaño de la cola de la fórmula bajo durante periodos de mucha carga y para guardar el historial en caso contrario. Una buena aproximación de este número es mantenerlo un poco por debajo del rendimiento medio dentro del periodo de formula.queue.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 "iniciadas". La hebra las ejecuta y las completa antes de asignar un nuevo lote. | Esto es un valor importante. Información de fondo: las expresiones se ejecutan de forma simultánea, sin ningún orden en varias hebras en varios nodos a la vez, pero siempre en un orden cronológico que tiene en cuenta las dependencias. Por ejemplo, si dos expresiones de la cola no están relacionadas, se podrían ejecutar en otro orden distinto al que se añadieron. Por consiguiente, es posible que las entradas de expresión no se ejecuten, si existen instancias de la misma, o entradas cuyos valores dependen de la misa, que se no se hayan ejecutado antes. Esto y la simultaneidad requiere la asignación para evitar colisiones, el orden incorrecto y el trabajo redundante. Puesto que la asignación es una operación cara, se asignan varias expresiones juntas con el requisito anterior y con la condición que se hayan ejecutado en orden especificado. 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 durante el 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 un valor maxage y maxsize. Normalmente, sólo se produce la poda de colas. La primera limpieza se produce cuando se inicia el servidor, momento en el que se realiza el mantenimiento especial del punto. 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. Evite aumentar demasiado este valor de tiempo, ya que esto causará fallos en la ejecución o un mal rendimiento, si la carga aumenta significativamente (por ejemplo, después de una importación o de que se haya añadido 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 sigue conteniendo entradas sin evaluar cuando se produce el siguiente intervalo, se creará un nuevo trabajador para aumentar el esfuerzo. | En versiones anteriores de Rational Focal Point, la ejecución era asíncrona e inmediata. Cuando las expresiones se mueven a la base de datos, dejan de ser posibles sin el riesgo de puntos muertos. Esto es el intervalo al que se comprueba la cola de expresión para ver nuevas expresiones para ejecutar, es decir, el tiempo máximo (junto con el tiempo de ejecución) que debe esperar el usuario (leer: renovar) para que se ejecute una expresión. El sondeo de entradas de cola sin evaluar no es caro, si no hay ninguna y, por lo tanto, el tiempo podría ser menor. Sin embargo, si el intervalo es demasiado corto, consume los recursos innecesariamente. Esto también afecta a la aceleración de la concurrencia. Si la hebra del trabajador activada durante el tiempo del intervalo anterior no ha acabado dentro del intervalo, se inicia otra hebra (hasta thread.per.nodes). Si la aceleración es demasiado lenta, o si son necesarias las latencias de evaluación inferiores, podría reducir este número. Si las expresiones se utilizan en raras ocasiones, podría 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 a cada intervalo, si hay más trabajo para hacer. Esto requiere hebras libres en la agrupación de hebras de la aplicación, que se ajusta automáticamente con respecto al número de los núcleos de CPU (virtuales o físicos). También está limitado a no consumir la última hebra de la agrupación. Puede experimentar con este número. Sin embargo, no se puede garantizar un rendimiento mejor, ya que depende en gran medida de la capacidad de simultaneidad de la base de datos para continuar. Un signo que es demasiado bajo significa que la mayoría de la veces la cola tiene expresiones sin evaluar y que la carga de la base de datos es baja. |
| 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 existe ningún ajuste para realizar para esta configuración. No lo cambie nunca. Conserve el valor predeterminado "true". |
* Tiempo de ejecución indica si la configuración de la aplicación se produce durante el tiempo de ejecución (se indica mediante Yes), o sólo durante el arranque (se indica mediante No).