Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

...

  • Systémová štruktúra SV._System_ArchivPerformance je určená na monitorovanie výkonu archívu - viď popis jednotlivých stĺpcov. Odporúčame archiváciu stĺpcov PendingDbRequest, PendingStatReqest, PerformedDbRequest a PerformedCalcRequest (s vhodným filtrom) a prípadne vytvorenie archívnych štatistík nad týmito hodnotami (napr. 1-minútový a hodinový sumár).

  • Tell príkaz PENDING_REQUESTS skopíruje frontu požiadaviek archívu do textového súboru. Ten je možné následne analyzovať a hľadať v ňom anomálie.

  • Tell príkaz STATISTICS umožňuje zistenie množstva hodnôt, ktoré boli pre jednotlivé archívne objekty uložené do databázy za posledných N hodín. Výstupom príkazu je textový súbor, ktorý je možné následne importovať napr. do Excelu a zoradiť podľa posledného stĺpca. Následne je možné optimalizovať archívy s najväčším počtom hodnôt (nastavenie filtrov, prípadne obmedzenie počtu výpočtov pre vypočítané archívy).

  • Príkaz STATISTICS nezachytí, pokiaľ bola jedna hodnota menená viackrát (napríklad vkladanie hodnôt zo skriptu). Preto existujú ladiace kategórie DBG.ARCHIV.MANUAL_INSERT_VALUE a DBG.ARCHIV.MANUAL_UPDATE_VALUE  nastaviteľné pomocou procesu D2000 System Console v okne Debug info. Tieto kategórie zapínajú zobrazovanie výpisov o akciách INSERTARCHARR resp. UPDATEARCHVAL (a o ručnej modifikácii hodnôt z D2000 HI). Zobrazené sú ID archívnych objektov a vkladané hodnoty (v prípade akcie INSERTARCHARR prvá a posledná hodnota z vkladaného zoznamu).

  • Ďalším problémom môže byť, že hodnoty opakovane vkladané zo skriptu spôsobia veľké množstvo následných prepočtov. V takom prípade je vhodné pred vkladaním zo skriptu najskôr vykonať čítanie (GETARCHVAL) a otestovať, či hodnota už v archíve nie je uložená. K dispozícii je aj ladiaca kategória DBG.ARCHIV.MANUAL_READ_BEFORE_IU, ktorá zapína túto funkčnosť priamo v obsluhe akcií INSERTARCHARR resp. UPDATEARCHVAL a ladiaca kategória DBG.ARCHIV.MANUAL_READ_BEFORE_IU.DBG, ktorá aktivuje výpisy, keď sa zistí, že vkladaná hodnota sa už v archíve nachádza. Pomocou týchto ladiacich výpisov je možné zistiť, pre ktoré objekty vkladané zo skriptu má zmysel implementovať čítanie pred zápisom. Výpisy majú tvar
    Insert value $XXX (NAME) Count= N First value=VALUE_DETAILS Last value=VALUE_DETAILS
    Update value $XXX Action=MANARCHINSERT VALUE_DETAILS


  • Ladiaca kategória DBG.ARCHIV.MONITOR.MV zapína výpisy najstarších hodnôt, ktoré sú vkladané akciami INSERTARCHARR resp. UPDATEARCHVAL. Výpisy majú tvar
    ManualValues delay (Update) XXX sec for ID $YYY: VALUE_DETAILS
    resp.
    ManualValues delay (Insert) XXX sec for ID $YYY: VALUE_DETAILS
    Pomocou tejto kategórie (zapnutie, vypnutie) je možné zisťovať či sa do archívu nevkladajú zo skriptu staré hodnoty, ktoré následne vyvolávajú prepočty závislých archívnych objektov.

  • Ladiaca kategória DBG.ARCHIV.MONITOR.NV zapína výpisy najstarších hodnôt, ktoré prichádzajú do archívu ako hodnoty objektov, ktoré idú do primárnych archívov. Výpisy majú tvar
    NewValues delay XXX sec for ID $YYY
    Pomocou tejto kategórie (zapnutie, vypnutie) je možné zisťovať či do archívu nechodia (napr. z komunikácie) hodnoty so starou časovou značkou, ktoré následne vyvolávajú prepočty závislých archívnych objektov.
    Pozn: po vypnutí ladiacej kategórie sa zobrazí najdlhšie dosiahnuté oneskorenie.

  • Ladiaca kategória DBG.ARCHIV.MONITOR.OV zapína výpisy najstarších hodnôt, ktoré prichádzajú do archívu ako staré hodnoty (z komunikácie, z gatewaya), ktoré idú do primárnych archívov. Výpisy majú tvar
    OldValues delay XXX sec for ID $YYY, source object $ZZZ
    Pomocou tejto kategórie (zapnutie, vypnutie) je možné zisťovať či do archívu nechodia staré hodnoty, ktoré následne vyvolávajú prepočty závislých archívnych objektov.
    Pozn: po vypnutí ladiacej kategórie sa zobrazí najdlhšie dosiahnuté oneskorenie.

  • Ladiaca kategória DBG.ARCHIV.OLDVAL.COMMIT súvisí s kategóriou DBG.ARCHIV.MONITOR.OV. Zapína výpisy pri aplikačných "commitoch" (OLDVALUE COMMIT), ktoré nasledujú po skončená zápisu starých hodnôt (čítaných z komunikácie, z gatewaya), ktoré idú do primárnych archívov. Výpisy majú tvar
    Old value commit TransactId XXX <time_from, time_to>
    Pomocou tejto kategórie je možné zisťovať, za aké obdobie do archívu chodia staré hodnoty, ktoré následne vyvolávajú prepočty závislých archívnych objektov (tiež za toto obdobie).

  • Výkon archívu na platforme Linux (najmä pre vypočítané a štatistické archívy) je možné výrazne zvýšiť nasadením optimalizovanej unixODBC knižnice libodbc.so.2.0.0. Navyše odporúčame nasadenie patchov archívu z októbra 2021 a novších, ktoré majú implementované recyklovanie ODBC kurzorov, ktoré rieši pomalosti knižnice unixODBC spôsobené použitím dátových štruktúr (lineárne zoznamy) nevhodných pre aplikácie s niekoľkými desiatkami tisíc predkompilovaných kurzorov.

  • Na všetkých platformách (operačných systémoch) odporúčame použiť pre potreby archivácie databázu PostgreSQL a venovať pozornosť správnemu nastaveniu jej parametrov.

  • Zrýchlenie archívu pri čítaní (a teda aj pri prepočtoch štatistických a výpočítaných archívov) je možné dosiahnúť zapnutím izochrónnej cache.

  • Zrýchlenie archívu pri zápise je možné dosiahnúť zvýšením počtu zapisovacích taskov - parameter WriteThreadsCount. Táto úprava vyžaduje rozšírenie licencie o High Performance Archiv.

  • Zrýchlenie archívu pri čítaní je možné dosiahnúť zvýšením počtu čítacích taskov - parameter ReadThreadsCount. Táto úprava vyžaduje rozšírenie licencie o High Performance Archiv.

  • Odporúčame zapnutie časových rezov aspoň pre štruktúrované archívy (DataTableSlices=2). Časové rezy zrýchlia a zjednodušia údržbu dátových tabuliek a indexov najmä pre prípad štruktúrovaných archívov.

  • Parameter ReportLongRecalc môže byť použitý na detekciu prepočtov intervalov za dlhšie obdobie ako je špecifikovaná hodnota (v sekundách). Takéto prepočty môžu byť dôsledkom vkladania dát, ktoré sú príliš staré (alebo existencie dát, ktoré majú čas v budúcnosti).
  • Tell príkaz FREEZE umožňuje zastaviť spracovanie dát v archíve na definovaný počet sekúnd a následne nahromadené požiadavky spracovať. Takto je možné uskutočniť výkonnostný test archívu (ak sa jedná o D2000 systém s redundantnými archívmi, tak ideálne na pasívnom archíve, aby pozastavenie archivácie nemalo vyplyv na funkčnosť).

...