Vyladění fronty výrazů

Generátor výrazů by mohl potřebovat vyladění založené na prostředcích serveru, počtu výrazů a komplikovanosti pro každou instalaci. Obecně proces zahrnuje vyladění a měření výkonu pro jeden parametr opakovaně v daném okamžiku, dokud není výkon dále zvýšen. Stopa záznamů musí být udržená. Nové vyladění je povinné pro změnu hardwaru, použití a nastavení.
Jako administrátor, následující aplikace musí být zaškrtnuta pro každou instalaci:
Tabulka 1. Nastavení aplikace vyladění fronty výrazů
Nastavení Jednotka Předvolba Běhové prostředí* Popis Vyladění tip
formula.queue.maxage h 24 Ano. Maximální počet hodin, kdy je historie fronty výrazů uchována. Pouze výrazy, které jsou spuštěné, se smažou. To se provádí pomocí vzorce. Účel uchování položek, které jsou spuštěné, je pro statistiky výrazů (Rozšířený > Fronta výrazů) a kontrolu cyklů vyhodnocení. U vyhodnocení cyklů by toto číslo mohlo být nižší v nastaveních high-throughput, aby uchovalo sníženou velikost tabulky.
formula.queue.maxsize položky 500000 Ano. Maximální počet položek ve frontě výrazů. Úloha vyčištění slouží k tomu, aby udržela počet položek pod tímto číslem pomocí historie smazání. Pouze výrazy, které jsou spuštěné, se smažou. Toto přepíše nastavení maximální doby trvání. Chcete-li lepší výkon, lze toto číslo vyladit, aby se uchovala snížená velikost historie fronty během období vysokého načtení a jiný způsob ukládání historii. Dobrou aproximací tohoto čísla je uchovat ho lehce pod propustností průměru během období maximální doby trvání.
formula.execution.batch.size položky 30 Ano. Počet položek fronty výrazů, které jsou přiděleny pro jeden podproces při každém spuštění alokace. Položky jsou označeny jako "spuštěné" a podproces se spustil a dokončil před přidělením nové dávky. Výrazy jsou souběžně spuštěny na několika podprocesech na několika uzlech, ale vždy v chronologickém pořadí s ohledem na závislosti. Pokud spolu dva výrazy na frontě nesouvisejí, pak můžou být spuštěny v jiném pořadí, než byly přidány. Položky výrazu mohou být závislé na hodnotě jiné položky. Položka výrazu se možná nespustí, pokud není instance dané položky (hodnota, na které položka výrazu závisí) spuštěna před výrazem. Tento způsob a souběžnost požadují alokaci, aby se vyhnuly kolizi, nekonzistentnímu pořadí a nadbytečné práci. Alokace je trochu drahá, proto je několik výrazů přiděleno najednou s výše uvedeným požadavekm a podmínkou, které jsou spuštěné v poskytnutém pořadí. Pokud je přiděleno mnoho výrazů, pak se uloží režie přidělení, ale to "uzamkne" souběžnost, a naopak. Obecné pravidlo je snížit toto číslo, pokud výrazy vytvářejí dlouhé řetězce závislostí, a zvýšit ho, pokud jsou krátké, nebo pokud existuje několik závislostí. Tuto hodnotu můžete změnit v běhovém prostředí, a proto byste ji měli vyladit, dokud se nenalezlo rozumné optimum. Hodnoty menší než 10, nebo větší než 200, jsou zřídka optimální.
formula.cleanup.interval msecs 1800000 Ne. Frekvence vyčištění fronty výrazů. Zde jsou vynucena nastavení maximální doby trvání a maximální velikosti. Provádí se pouze smazání fronty. První čištění proběhne, když se server spustí v bodě, ve kterém je speciální údržba hotová. Také každé dva týdny (v noci) je hotová kontrola integrity výrazu časovače. Většinu času je předvolba rozumná. Pokud je propustnost vysoká, pak čištění trvá déle, ale mělo by být prováděno častěji a naopak. Proto dávejte pozor na příliš velké zvýšení této doby, jelikož může způsobit výpadky provedení nebo chybný výkon, pokud se náhle načtení podstatně zvýší (například, po importu nebo přidání atributu).
formula.background.interval msecs 10000 Ne. Frekvence kontroly fronty výrazů pro nové nepřidělené výrazy ke spuštění. Když je dávka dokončena, okamžitě se vykoná nová kontrola bez čekání na interval. Pokud fronta není "hotova", když se vyskytne další interval, pak nový pracovní podproces zdvojnásobí úsilí. V dřívějších verzích produktu Rational Focal Point byl výraz asynchronní a okamžitý. Když se výrazy přesunuly do databáze, nebylo to možné bez rizika zablokování. Toto je interval, na kterém je fronta výrazů kontrolována pro nové výrazy ke spuštění, což znamená maximální dobu (plus doba provádění), po kterou musí uživatel čekat na výraz, aby byl spuštěn. Pokud je interval příliš krátký, pak pouze zbytečně spotřebovává prostředky. To také ovlivňuje běh souběžnosti: Pokud pracovní podproces, který byl spuštěn na předchozím intervalu, není v intervalu dokončen, pak se také spustí jiný podproces (až do thread.per.nodes). Je-li běh pomalý, můžete toto číslo snížit. Jsou-li výrazy používány zřídka, můžete je nepatrně zvýšit.
formula.max.background.threads.per.node count 2 Ne. Maximální počet souběžných podprocesů spouštějících výrazy pro každý uzel. Skutečné maximální číslo dynamicky závisí na tom, zda existují volné podprocesy ve fondu podprocesu aplikace. Běh souběžnosti popsaný v intervalu background.interval zvyšuje počet podprocesů vyhodnocení výrazů na uzlu v každém intervalu, pokud více práce na vykonání. Všimněte si, že toto je maximum. Toto požaduje volné podprocesy ve fondu podprocesu aplikace, který je automaticky vyladěn s ohledem na počet jader (virtuální nebo jiné). Je také uzavřený k tomu, aby nespotřebovával poslední podproces ve fondu. S tímto číslem můžete experimentovat, jelikož nepřeruší žádnou operaci. Ačkoliv není garantovaný lepší výkon, z velké části to záleží na schopnosti souběžnosti databáze, aby se zachovala. Znamením, že je toto příliš nízké, je nejčastější fronta, která má výrazy, které nejs ou vyhodnocené.
formula.cleanup.enabled logický pravda Ano. Vyčištění fronty výrazů je povolené při výchozím nastavení. To nesmí být nikdy vypnuto, kromě účelů ladění, nebo když jsou spuštěná měření výkonu, kde musí výt vyčištění vyloučeno. Neexistuje žádné vyladění, které by vykonalo toto nastavení, nikdy ho neměňte, uchovejte ho ve výchozím nastavení na "true".

Zpětná vazba