10.9.2024

Enterprise vlastnosti Archivácie v SCADA a MES systémoch, časť 3

V tomto pokračovaní článku "Enterprise vlastnosti archiváci v SCADA a MES systémoch, časť 2" sa budeme zaoberať cachovaním a diagnostickými možnosťami D2000 Archívu.

Archívna cache

Archívna cache bola implementovaná už v roku 2004, ale dlho slúžila iba na uchovávanie hodnôt potrebných pre výpočet štatistických archívov. Takejto cache stačilo niekoľko MB pamäte, ktoré dokázala efektívne využiť. Pre každý objekt sa uchovával iba taký interval hodnôt, aký potreboval na ňom závislý štatistický archív s najväčšou periódou. Táto cache bola teda krátkodobá a nepoužívala sa pri čítaní z archívu.

Až v roku 2014 bola archívna cache rozšírená - bol podporený mód tzv. izochrónnej cache, v ktorom sú pre všetky archívne objekty uchovávané ich hodnoty s rovnakou časovou hĺbkou. Tá závisí od nakonfigurovanej veľkosti cache (spravidla stovky MB a v prípade 64-bitových archívov aj niekoľko GB) a dynamicky sa prispôsobuje počtu archivovaných hodnôt za sekundu tak, aby nepresiahla nakonfigurovanú veľkosť. Izochrónna cache sa používa aj pri čítaní.

6_sysconsole_isocache.png
Obr 6: informácia o veľkosti izochrónnej cache (4 GB) pokrývajúcej 1 deň a 9 hodín. Cache obsahuje cca 75 mil záznamov, čo zodpovedá 620 archivovaným hodnotám každú sekundu..

Pokiaľ bežný užívateľ potrebuje v grafoch zobrazovať dáta za poslednú pracovnú zmenu, 24 hodín a podobne, je možné väčšinu žiadostí obslúžiť už čítaním z cache, bez potreby zaťažovať čítaním SQL databázu (a disky). Takéto čítanie je teda podstatne rýchlejšie (reálne merania ukazujú dostupnosť dát do niekoľkých desiatok ms, takže väčšina čakania užívateľa pripadá na samotné vykreslenie v grafe) a menej náročné na systémové prostriedky - a priepustnosť archívu pri čítaní sa zmnohonásobí. Pokiaľ užívateľ potrebuje aj staršie dáta, tak sa najskôr číta z cache a následne sa staršie dáta dočítajú z databázy – takže aj takéto čítanie sa zrýchli (v pomere cachovaných dát k starším dátam).

D2000 Archív umožňuje inicializáciu izochrónnej cache po štarte (umelo vyvolaným čítaním). Tá síce zaťaží disky (bežne na niekoľko minút), ale na druhej strane má archív následne k dispozícii dáta. Alternatíva je postupné spontánne plnenie cache priebežne archivovanými dátami a dátami načítanými v dôsledku užívateľských požiadaviek.

 

7_isocacheautofill.png
Obr 7: výpis z logu archívu o začiatku a konci napĺňania cache pri štarte. Cache s veľkosťou 2 GB sa naplnila hodnotami 65 tisíc archívnych objektov za 9 minút.

Analýza a diagnostika

Je dôležité, aby konfigurátori a administrátori systému mali k dispozícii prostriedky na vykonanie diagnostiky a analýzy archívu. Otázky typu “čo práve teraz archív robí”, “čo ho najviac zaťažuje”, prípadne “prečo má tento konkrétny archívny objekt práve takúto hodnotu” sú asi najčastejšie, na ktoré potrebujú ľudia z praxe odpoveď. Poďme sa pozrieť, čo v tomto smere ponúka D2000 Archív.

  • diagnostickú štruktúru (viď Obr 2 v prvej časti článku)  zobrazujúcu základné informácie o stave archívov: počty hodnôt vkladaných do databázy, počty požiadaviek vo frontách, veľkosti archívnych databáz, voľné miesto v nich, využitie cache a iné.
  • zapnutie diagnostických výpisov na jeden/viacero objektov podľa masky. Archív vypisuje informácie o zapisovaní a čítaní hodnôt zvolených archívnych objektov.
8_sysconsole_di.png
Obr 8: zapnutie sledovania na štruktúrovanom archíve H._SysProf.Archiv.PendingDbRequest a výpis o archivácii dvoch nových hodnôt pre 1. a 3. riadok
  • zobrazenie informačného výpisu o konkrétnom archívnom objekte – zobrazujú sa konfiguračné aj runtime informácie, informácie o zdrojovom objekte, údaje z cache a iné
9_sysconsole_dyn_info-1.png
Obr 9: časť informačného výpisu
  • zápis fronty požiadaviek na disk – v ľubovolnom okamihu je možné uloženie fronty nahromadených požiadaviek v textovom formáte na disk. Je určený na analýzu, aké objekty a s akými časovými značkami sa vo fronte nachádzajú a prečo došlo k nárastu fronty.

  • generovanie štatistiky za posledných N hodín – na požiadanie archív vygeneruje csv súbor, v ktorom sa nachádza zoznam všetkých objektov a počty hodnôt uložených v archíve za špecifikované obdobie. Slúži na zisťovanie archívnych objektov s najväčšími počtami zmien a teda zaberajúcich najviac miesta na diskoch.

  • zisťovanie objektov s najväčším počtom hodnôt v archívnej cache – podobná funkcionalita ako v predchádzajúcom bode (pokiaľ je zapnutá izochrónna cache), ale týka sa iba hodnôt v cache, takže nie je možné špecifikovať časové obdobie. Výhodou oproti štatistike je už zotriedený zoznam objektov a odozva do niekoľko sekúnd. Generovanie štatistiky trvá aj niekoľko minút a dáta je nutné analyzovať tabuľkovým procesorom.
10_show_cache.png
Obr 10: výpis objektov z archívnej cache – zobrazuje sa meno a ID objektu, počet hodnôt a časový interval, za ktorý sú dáta v cache
  • meranie výkonu zápisov v archíve – je možné pozastaviť zapisovanie hodnôt (“freeze”) na zvolený časový interval. Následne archív spracuje požiadavky nahromadené vo fronte. Z rýchlosti spracovania je možné usudzovať na výkonnostnú rezervu konkrétneho hardvéru. Pokiaľ sa tento test vykoná na pasívnom archíve, užívatelia nie sú nijako ovplyvnení.
11_freeze_graf.png
Obr 11: graf počtu hodnôt vložených do archívu (desaťsekundové priemery) zachytávajúci obdobie štvorminútového “freeze” príkazu  (10:30) a následné spracovanie nahromadených hodnôt (10:34). Pomer maxima grafu (16123) voči váženému priemeru (1313) ukazuje uspokojivú výkonnostnú rezervu.

Toto boli asi najvýznamnejšie “enterprise” vlastnosti, ktorý ponúka D2000 Archív konfigurátorom a správcom. Niektoré z nich môžu byť použité aj v menších riešeniach. V každom prípade je dobré vedieť, že technológia D2000 je škálovateľná, vie zvládať aj významný nárast dát a dokáže využiť zdroje, ktoré súčasné servery ponúkajú.

D2000 archív má aj ďalšie zaujímavé vlastnosti – spomenieme automatickú reorganizáciu alebo podporu časových rezov, ktoré sú námetom na nezávislý článok.

 

24.7.2017, Ing. Peter Humaj, www.ipesoft.com

Iné blogy