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 složitosti 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í.
V případě administrátora, musí být zkontrolováno nastavení této aplikace 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í (nikoli garantovaný) počet hodin, kdy je historie fronty výrazů uchována. Smažou se pouze spuštěné výrazy. To se provede pomocí úlohy úklidu vzorce. Provedené vzorce fronty v tabulce fronty vzorců jsou uchovány jako historie provádění. Tato historie se použije ke kontrole smyček provádění a ke generování statistiky. Pokud není statistika potřeba, toto číslo může být snížené v nastavení vysokého výkonu, aby se nezvětšovala velikost tabulky. Nikdy nenastavujte tuto hodnotu na nulu, jelikož řádná kontrola smyčky požaduje alespoň hodinovou historii.
formula.queue.maxsize položky 500000 Ano. Požadovaný maximální počet položek ve frontě výrazů. Úloha vyčištění se pokouší udržet počet položek pod tímto číslem smazáním historie. Smažou se pouze spuštěné výrazy. Toto přepíše nastavení formula.queue.maxage. Toto číslo lze snížit, abyste uchovali velikost fronty vzorců na spodních hodnotách během období vysokého načítání a abyste jinak uložili historii. Dobrou aproximací tohoto čísla je uchovat ho lehce pod průměrnou propustností během období formula.maxage.period.
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é". Podproces se pomocí nich spustil a dokončil před přidělením nové dávky.

Toto je důležité nastavení. Další informace: Výrazy se provádějí souběžně, mimo pořadí na několika uzlech najednou, ale vždy v chronologickém pořadí s ohledem na závislosti. Například 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. Následně, položky výrazu nemohou být provedeny, pokud zde jsou instance nebo položky, na jejichž hodnotách to závisí, které předtím nebyly provedeny. Tento způsob a souběžnost požadují alokaci, aby se vyhnuly kolizi, špatnému pořadí a nadbytečné práci.

Jelikož alokace je nákladná operace, několik výrazů bude přiděleno spolu s výše uvedeným požadavkem a s podmínkou, že budou provedeny v dané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 nenalezne 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. Obvykle dojde pouze k smazání front. První čištění proběhne, když se server spustí a provede se speciální údržba. 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. 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 stále obsahuje nehodnocené položky, když se vyskytne další interval, pak nový pracovní podproces zvýší účinnost. 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 již možné bez rizika zablokování. Toto je interval, na kterém je fronta výrazů kontrolována kvůli novým výrazům ke spuštění, což znamená maximální dobu (spolu s dobou provádění), po kterou musí uživatel čekat(čti: obnovit) na výraz, aby byl spuštěn. Systém výzev pro nehodnocené položky fronty není nákladný, pokud zde žádné nejsou, a proto čas může být krátký. Avšak pokud je interval příliš krátký, pak pouze zbytečně spotřebovává prostředky. To také ovlivní chod souběžnosti. Pokud pracovní podproces, který byl spuštěn v čase předchozího intervalu, není v intervalu dokončen, pak se také spustí jiný podproces (až dojde na thread.per.nodes). Pokud je chod příliš pomalý nebo se požaduje nižší latence vyhodnocení, můžete snížit toto číslo. 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 je zde více práce, která se má udělat. Toto požaduje volné podprocesy ve fondu podprocesu aplikace, který je automaticky vyladěn s ohledem na počet jader CPU (virtuální nebo fyzické). Je také uzavřený k tomu, aby nespotřebovával poslední podproces ve fondu. S tímto číslem můžete experimentovat. 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 příliš nízký, je nejčastěji, že fronta obsahuje nevyhodnocené výrazy a že načtení databáze je nízké.
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í být vyčištění vyloučeno. Neexistuje žádné vyladění pro toto nastavení. Nikdy jej neměňte. Ponechte výchozí hodnotu jako "správnou".

* Běhové prostředí označuje, zda nastavení aplikace bude mít efekt během chodu (označeno jako Ano) nebo pouze při spuštění(označeno jako Ne).


Zpětná vazba