| 설정 | 단위 | 기본값 | 런타임* | 설명 | 튜닝 팁 |
|---|---|---|---|---|---|
| formula.queue.maxage | h | 24 | 예 | 표현식 큐 히스토리를 보유하는 최대(보장하지 않음) 시간입니다. 실행 표현식만 제거됩니다. 이는 공식 정리 작업으로 수행됩니다. | 공식 큐 테이블에서 실행된 큐 항목은 실행 히스토리로 유지됩니다. 이 히스토리는 실행 루프를 확인하고 통계를 생성하는 데 사용됩니다. 통계가 필요하지 않은 경우, 이 숫자는 테이블 크기를 작게 유지하기 위해 많은 처리량 설정에서 작을 수 있습니다. 올바로 루프를 확인하는 데 최소한 한 시간의 히스토리가 필요하므로 이 값을 0으로 설정하지 마십시오. |
| formula.queue.maxsize | 항목 | 500000 | 예 | 표현식 큐의 원하는 최대 항목 수입니다. 정리 작업은 히스토리를 제거하여 항목 수를 이 숫자 아래로 유지하려고 합니다. 실행 표현식만 제거됩니다. 이것이 formula.queue.maxage 설정을 대체합니다. | 고 로드 기간 중에 공식 큐 크기를 낮게 유지하고 히스토리가 줄도록 이 수를 줄일 수 있습니다. formula.queue.maxage 기간 중에 평균 처리량을 조금 밑돌게 유지하는 것이 적절합니다. |
| formula.execution.batch.size | 항목 | 30 | 예 | 각 할당 실행 시마다 한 스레드에 할당되는 표현식 큐 항목의 수입니다. 항목은 "시작됨"으로 표시됩니다. 스레드는 이를 통해 실행되고 새 일괄처리를 할당하기 전에 이를 완료합니다. | 이는 중요한 설정입니다. 배경 정보: 표현식은 여러 노드의 여러 스레드에서 동시에 계속 실행되지만 항상 종속성에 기반한 시간 순서를 따릅니다. 예를 들어, 큐의 두 표현식이 서로 관련되지 않은 경우 추가된 순서와 다른 순서로 실행될 수 있습니다. 결과적으로 표현식 항목은 이에 대한 인스턴스가 있거나 이전에 실행되지 않은 종속하는 값이 있는 항목은 실행될 수 없습니다. 이것과 동시성에는 충돌, 잘못된 순서 및 중복 작업을 방지하기 위해 할당이 필요합니다. 할당은 비용이 많이 드는 작업이므로 여러 표현식이 위의 요구사항과 주어진 순서로 실행되는 조건에 따라 함께 할당됩니다. 많은 표현식이 할당되는 경우 할당 오버헤드는 저장되지만 동시성은 "차단"되고 그 반대도 마찬가지입니다. 일반적으로는 규칙은 표현식이 긴 종속성 체인을 형성하는 경우 이 숫자를 낮게 유지하고 표현식 체인이 짧거나 종속 항목이 적을 경우 이 숫자를 높게 유지합니다. 이값은 런타임 시 변경할 수 있으므로 최적 값을 찾을 때까지 조정할 수 있습니다. 10 미만의 값이나 200을 초과하는 값은 적절하지 않습니다. |
| formula.cleanup.interval | msecs | 1800000 | 아니오 | 표현식 큐를 정리하는 빈도입니다. 여기에는 maxage 및 maxsize가 적용됩니다. 보통 큐 제거만 나타납니다. 첫 번째 정리는 서버가 시작되어 특수한 유지보수가 수행될 때 이루어집니다. 또한 2주 간격으로 타이머 표현식 무결성 검사가 야간에 수행됩니다. | 대부분의 경우 기본값이 적당합니다. 처리량이 많으면 정리에 더 오래 걸리지만 좀 더 자주 수행해야 하고 그 반대도 마찬가지입니다. 로드가 갑자기 크게 증가하면(예를 들어, 가져오기 또는 속성 추가 후) 실행 가동 중단이나 성능 저하가 발생할 수 있으므로, 이 시간을 늘릴 때에는 주의해야 합니다. |
| formula.background.interval | msecs | 10000 | 아니오 | 할당되지 않은 새 표현식을 실행할 것이 있는지 표현식 큐를 확인하는 빈도입니다. 일괄처리가 완료되면 간격을 대기하지 않고 즉시 새로 확인이 이루어집니다. 큐가 다음 간격이 나타날 때 여전히 평가되지 않은 항목을 포함하는 경우 노력을 늘리기 위해 새로운 작업자 스레드가 증식됩니다. | Rational® Focal Point™의 이전 버전에서 실행은 비동기이고 즉시 실행 방식이었습니다. 표현식이 데이터베이스로 이동될 때 더 이상 교착 상태 없이는 불가능했습니다. 이것이 실행할 새 표현식이 있는지 표현식 큐를 검사하는 간격 즉, 사용자가 표현식 실행을 대기(읽기: 새로 고치기)해야 하는 최대 시간(실행 시간과 함께)입니다. 평가되지 않은 큐 항목을 폴링하는 것은 아무 항목도 없으면 비용이 많이 들지 않으므로 시간이 짧을 수 있습니다. 하지만, 간격이 너무 짧으면 자원을 불필요하게 소비하게 됩니다. 이는 동시성 램핑에도 영향을 미칩니다. 이전 간격에서 시작된 작업자 스레드가 간격 내에 완료되지 않아도 다른 스레드(thread.per.nodes까지)가 시작됩니다. 램핑이 너무 느리거나 더 낮은 평가 지연이 필요하면 이 숫자를 낮출 수 있습니다. 표현식이 자주 사용되지 않는 경우 이 숫자를 약간 높일 수 있습니다. |
| formula.max.background.threads.per.node | count | 2 | 아니오 | 각 노드에 대해 표현식을 실행하는 최대 동시 스레드 수입니다. 실제 최대 수는 애플리케이션 스레드 풀에 여유 스레드가 있는지의 여부에 따라 동적으로 결정됩니다. | background.interval에서 설명한 동시성 램핑은 실행할 작업이 많을 경우 각 간격에서 노드의 표현식 평가 스레드 수를 증가시킵니다. 애플리케이션 스레드 풀에는 여유 스레드가 있어야 하며 이는 CPU 코어(가상 또는 실제)의 수와 관련하여 자동으로 조정됩니다. 또한 풀의 마지막 스레드는 이용이 금지됩니다. 이 숫자로 실험할 수 있습니다. 성능은 주로 유지할 데이터베이스의 동시성에 좌우되므로 더 나은 성능을 보장할 수는 없습니다. 큐에 평가되지 않은 표현식이 가장 많고 데이터베이스 로드가 낮으면 이 숫자가 너무 낮다는 표시입니다. |
| formula.cleanup.enabled | 부울 | true | 예 | 기본적으로 표현식 큐 정리가 사용됩니다. 디버깅 시나 정리를 배제해야 하는 성능 측정 실행 시를 제외하고 이를 사용 안함으로 설정하면 안 됩니다. | 이 설정에는 실행할 튜닝이 없습니다. 변경하지 마십시오. 기본값 "true"를 유지하십시오. |
* 런타임은 애플리케이션 설정이 런타임 도중(Yes로 표시됨)에 영향을 미치는지 아니면 시작 시(No로 표시됨)에만 영향을 미치는지 표시합니다.