| Configuração | Unidade | Padrão | Tempo de Execução* | Descrição | Dica de ajuste |
|---|---|---|---|---|---|
| formula.queue.maxage | h | 24 | Sim | O número máximo (não garantido) de horas que o histórico de fila de expressões é retido. Apenas as expressões de execução são removidas. Isso é feito pela tarefa de limpeza de fórmula. | As entradas de fila executadas na tabela de filas de fórmulas são mantidas como histórico de execução. O histórico é usado para verificar os loops de execução e para gerar estatísticas. Se as estatísticas não forem necessárias, esse número poderá ser reduzido em uma configuração de alto rendimento para manter o tamanho da tabela baixo. Nunca configure esse valor como zero, uma vez que a verificação adequada de loop requer pelo menos o histórico de uma hora. |
| formula.queue.maxsize | entradas | 500000 | Sim | O número máximo desejado de entradas na fila de expressões. A tarefa de limpeza tenta manter a contagem de entradas abaixo desse número removendo o histórico. Apenas as expressões de execução são removidas. Isso indefere a configuração formula.queue.maxage. | Esse número pode ser diminuído para manter o tamanho da fila de fórmulas baixo durante períodos de alto carregamento e, caso contrário, para salvar o histórico. Uma boa aproximação deste número é mantê-lo um pouco abaixo da média de rendimento no período formula.queue.maxage. |
| formula.execution.batch.size | entradas | 30 | Sim | O número de entradas da fila de expressões alocadas para um encadeamento em cada execução de alocação. As entradas são marcadas como "iniciadas". O encadeamento as percorre e conclui antes de alocar um novo lote. | Essa é uma configuração importante. Informações de segundo plano: As expressões são executadas simultaneamente, fora de ordem em vários encadeamentos em vários nós ao mesmo tempo, mas sempre em uma ordem cronológica que reconhece a dependência. Por exemplo, se duas expressões na fila não estiverem relacionadas, elas poderão ser executadas em uma ordem diferente da que foram incluídas. Consequentemente, as entradas de expressão podem não ser executadas se houver instâncias delas, ou entradas cujos valores elas dependam, que não são executadas antes que elas. Isso e a simultaneidade requerem alocação para evitar colisões, ordem inválida e trabalho redundante. Como a alocação é uma operação cara, várias expressões são alocadas juntas com o requisito acima e com a condição de que sejam executadas em uma determinada ordem. Se várias expressões forem alocadas, a sobrecarga da alocação será salva, mas isso "bloqueará" a simultaneidade e vice-versa. A regra geral é manter este número baixo se as expressões formarem longas cadeias de dependências e aumentá-lo se elas forem curtas ou se as dependências forem poucas. É possível alterar esse valor no tempo de execução e, portanto, você deve ajustá-lo até que um valor ótimo razoável seja localizado. Valores menores que 10 ou maiores que 200 raramente são ideais. |
| formula.cleanup.interval | msecs | 1800000 | Não | A frequência de limpeza da fila de expressões. Aqui é o onde maxage e maxsize são impingidos. Normalmente, apenas a remoção de fila ocorre. A primeira limpeza ocorre quando o servidor é iniciado, em cujo ponto a manutenção especial é executada. Além disso, a cada duas semanas uma verificação de integridade da expressão de cronômetro é executada (à noite). | Na maioria das vezes, o padrão é razoável. Se o rendimento for alto, a limpeza demorará mais, mas deverá ser executada com mais frequência e vice-versa. Tome cuidado ao aumentar demais esse tempo, pois isso pode causar indisponibilidades de execução ou desempenho insatisfatório, se o carregamento aumentar significativamente de repente (por exemplo, após uma importação ou um atributo incluído). |
| formula.background.interval | msecs | 10000 | Não | A frequência de verificação da fila de expressões para novas expressões não alocadas a serem executadas. Quando um lote for concluído, uma nova verificação ocorrerá imediatamente sem aguardar pelo intervalo. Se a fila ainda contiver entradas não avaliadas quando o próximo intervalo ocorrer, um novo encadeamento do trabalhador será gerado para aumentar o esforço. | Em versões anteriores do Rational Focal Point, a execução era assíncrona e imediata. Quando as expressões eram movidas para o banco de dados, isso não era mais possível sem o risco de conflitos. Este é o intervalo no qual a fila de expressões é verificada quanto a novas expressões a serem executadas, isto é, o tempo máximo (juntamente com o tempo de execução) que o usuário deve aguardar (ler: atualizar) para que uma expressão seja executada. A pesquisa de entradas de fila não avaliadas não é cara se não houver nenhuma e, portanto, o tempo pode ser curto. Entretanto, se o intervalo for muito curto, ele consumirá recursos desnecessariamente. Isso também afeta a rampa de simultaneidade. Se o encadeamento do trabalhador disparado no tempo de intervalo anterior não for concluído do intervalo, um outro encadeamento (até thread.per.nodes) será iniciado. Se a rampa for muito lenta, ou se latências de avaliação inferiores forem necessárias, você poderá reduzir esse número. Se as expressões forem usadas raramente, você poderá aumentá-las um pouco. |
| formula.max.background.threads.per.node | count | 2 | Não | O número máximo de encadeamentos simultâneos que executam expressões para cada nó. O número máximo real depende dinamicamente se houver encadeamentos livres no conjunto de encadeamentos de aplicativos. | A rampa de simultaneidade descrita no background.interval aumentará o número de encadeamentos de avaliação de expressão no nó em cada intervalo se houver mais trabalho a ser executado. Isto requer encadeamentos livres no conjunto de encadeamentos de aplicativos, que é ajustado automaticamente com relação ao número de núcleos de CPU (virtual ou físico). Ele também é limitado para não consumir o último encadeamento no conjunto. É possível experimentar com esse número. Não obstante, o melhor desempenho não é garantido, pois depende grandemente da habilidade da simultaneidade do banco de dados para ser mantido. Um sinal de que isso é muito baixo é que a fila na maioria das vezes possui expressões não avaliadas e que o carregamento do banco de dados é baixo. |
| formula.cleanup.enabled | boolean | true | Sim | Por padrão, a limpeza da fila de expressões é ativada. Ela nunca deve ser desativada, exceto para propósitos de depuração ou ao executar medidas de desempenho nas quais a limpeza deve ser dirigida. | Não há nenhum ajuste a ser feito para essa configuração. Nunca altere-a. Retenha o valor padrão "true". |
* Tempo de Execução indica se a configuração do aplicativo entra em vigor durante o tempo de execução (indicado por Sim) ou apenas na inicialização (indicado por Não).