Aplikačný server reálneho času Ipesoft D2000 je použiteľný na celú škálu aplikácií - od malých SCADA systémov (postavených na platforme Raspberry PI alebo na priemyselných počítačoch s OS Windows/Linux) až po veľké systémy typu MES/EMS s desiatkami užívateľov, veľkými aplikačnými databázami (v rozmeroch jednotiek TB), multiterabajtovými archívmi a trezormi. V tejto kapitole sa pokúsime sumarizovať niektoré osvedčené spôsoby a praktiky pri navrhovaní a správe D2000 systémov.
Virtualizácia
Aplikačný server D2000 je dnes často prevádzkovaný aj vo virtualizovanom prostredí (VMware, Hyper-V, Proxmox), najmä pre systémy typu MES, EMS, SELT a bilančné systémy, zriedkavejšie pre SCADA systémy.
V tomto prostredí dochádza ku zdieľani zdrojov, z čoho vyplývajú dva základné problémy so zdieľaním spojené:
- pridelenie dostatočného množstva zdrojov
- monitorovanie a diagnostika
Osvedčila sa nám "hyperkonvergovaná architektúra", v rámci ktorej používame výkonné servery s lokálnymi diskami (v diskovom poli RAID10, prípadne RAID50). Ideálne je, keď majú virtualizované D2000 aplikácie vlastné servery (ktoré nie sú zdieľané s inými aplikáciami) a keď správcovia D2000 aplikácií majú nielen administrátorské práva na virtuálne stroje, na ktorých je D2000 prevádzkovaná, ale majú zároveň prístup do virtualizačného prostredia, takže môžu operatívne vykonať výkonnostnú diagnostiku v prípade problémov.
V prípade viacerých administrátorov (napr. pre sieťovú infraštruktúru a firewally, virtualizáciu, Active Directory, aplikačné servery) odporúčame zavedenie prevádzkového denníka, v ktorom budú zaznamenávané všetky operácie, ktoré mohli ovplyvniť funkčnosť serverov, najmä:
- konfiguračné zásahy do sieťovej infraštruktúry
- konfiguračné zásahy do virtualizácie, pridávanie virtuálnych serverov, zmeny v prideľovaní a obmedzení prostriedkov (CPU, RAM)
- presuny virtuálnych serverov, presuny ich diskov
- konfiguračné zásahy do diskových polí, pridávanie ďalších hostov
- konfiguračné zásahy do politiky AD
- zmeny v nastaveniach antivírusov a antimalware softvéru
- inštalácie a upgrady softvéru
- upgrady firmware (serverov, switchov, firewallov)
- zmeny v nastaveniach serverov v BIOSe (výkonnostné, bezpečnostné, iné)
Následnú analýzu (spravidla pokiaľ dôjde k spomaleniu a zníženiu výkonu) existencia prevádzkového denníka značne uľahčuje. Na zdieľanie denníka možno použiť napr. SVN alebo GIT repozitár, prípadne SharePoint úložisko a podobne.
Pridelenie dostatočného množstva zdrojov vo virtualizovanom prostredí
Zdroje, ktoré D2000 primárne potrebuje, sú tri: pamäť (RAM), CPU a diskový priestor (zatiaľ sme nezaznamenali problémy s limitmi priepustnosti na sieťových rozhraniach). Odporúčame:
- RAM - pridelenie dostatočného množstva pamäte. Ideálne je vo virtuálnom prostredí pamäť rezervovať, takže nedochádza k zdieľaniu pamäte medzi virtuálnymi strojmi (tzv. balooning).
Malé D2000 aplikácie potrebujú orientačne 1 GB RAM (minimum pre aplikačný server na Windows/Linux je 4-8 GB), veľké niekoľko GB až desiatok GB, podľa počtu nakonfigurovaných objektov, procesov a používateľov. Ak je k dispozícii viac pamäte, odporúčame ju prideliť SQL databáze pre archív (odporúčame PostgreSQL) a archívnej cache (odporúčame niekoľko GB pre tzv. izochrónnu cache). Aplikácie využívajúce EDA technológiu (Energetická databanka) benefitujú z niekoľkých GB pamäte pridelených EDA serveru. - CPU - spotreba CPU silne závisí od povahy aplikácie (konštantná spotreba CPU pre aplikácie typu SCADA, výrazné špičky pre bilančné systémy alebo systémy, kde prebiehajú deje spúšťané užívateľmi - napr. príprava podkladov pre mesačné fakturácie). V prípade fyzických serverov majú dnešné procesory dostatok potrebného výkonu. Vo virtualizovanom prostredí sme sa stretli s prípadom, keď správcovia VMware umelo obmedzili maximálnu použiteľnú frekvenciu pre bilančný systém, lebo sa im zdalo, že "spotrebúva príliš veľa CPU". Jednak spôsobili výraznú nespokojnosť užívateľov (príprava fakturačných podkladov namiesto 30 minút trvala niekoľko hodín) a jednak analýza ukázala, že významnú časť výkonu spotreboval antivírus (ESET NOD), keďže nemal nakonfigurované výnimky.
Pre veľké aplikácie je vhodné prideliť viac vCPU (4-8-16) - architektúra D2000 umožňuje dobrú paralelizáciu (paralelné tasky v rámci procesov D2000 Kernel, D2000 Event, D2000 Archiv [konfigurovateľne]). - Diskový priestor:
- na partíciu s OS odporúčame cca 20 GB (Linux) resp. 100 GB (Windows)
- na partíciu s D2000 odporúčame ako základ aspoň 40 GB, pričom najväčiu spotrebu má zvyčajne archívna databáza - jednotky GB až jednotky TB (pre SELT systémy monitorovacia databáza - až desiatky GB)
- ak je zapnuté v D2000 Archíve trezorovanie (ukladanie historických údajov s neobmedzenou hĺbkou), tak na trezorové databázy odporúčame samostatnú partíciu (veľkosť trezorových databáz na nej bude postupne rásť). V súčasnosti existujú zákazníci s viac ako 20 TB trezorových databáz, pričom ale novšie verzie D2000 umožňujú zapnúť kompresiu dát trezorov, ktorá má zvyčajne kompresný pomer 1:10 a lepší, čo výrazne šetrí diskový priestor.
Na partíciu s OS a D2000 odporúčame rýchle disky (SSD), na partíciu s trezormi postačujú aj pomalšie HDD, prípadne NAS.
Monitorovanie a diagnostika vo virtualizovanom prostredí
Vo virtualizovanom prostredí je nevyhnutné mať prístup k monitorovaniu prevádzkových parametrov, aby bolo zaručené, že D2000 aplikácia netrpí v dôsledku zdieľania zdrojov. Odporúčame, aby správcovia prostredia monitorovali a vedeli poskytnúť tieto dáta (podľa vzoru grafov dostupných vo vCentre):
- grafy CPU záťaže D2000 serverov, iných virtuálnych serverov v rámci hosta a celkovej záťaže CPU hostov (na diagnostiku, či nedochádza k nedostatku CPU výkonu)
- grafy spotreby RAM (dôkaz, že nedochádza k balooningu - zdieľaniu pamäte medzi servermi pri nedostatku RAM a k následnému swapovaniu)
- grafy záťaže I/O subsystému (metriky: počty čítaní/zápisov za sekundu, množstvá načítaných/zapísaných dát [kB/s], latencie čítania/zápisu) - opäť, pre D2000 servery, iné virtuálne servery v rámci hosta, a pokiaľ sa jedná o zdieľané úložisko, tak záťaže všetkých hostov používajúcich diskové úložisko (na diagnostiku, či nedochádza k nedostatku I/O výkonu). Niektoré zdieľané úložiská poskytujú vlastnú diagnostiku záťaže od jednotlivých hostov, ktorá sa dá využiť (LeftHand, 3PAR).
Všetky tieto grafy a dáta pre ne odporúčame mať k dispozícii aspoň 3 mesiace, kvôli dlhodobému sledovaniu výkonu.
Vo virtualizovanom prostredí je pre D2000 Archív dôležitá nielen rýchlosť, ale aj latencia diskov. Treba si uvedomiť, že pri archivácii sa zapisuje paralelne do stoviek a tisícov databázových tabuliek pre jednotlivé archívne objekty.
Antivírusy
V prípade použitia antivírusov a antimalware programov (Microsoft Defender, ESET Nod, Symantec a iné, na platforme Linux napr. McAfee 'OAS Manager') je nutné správne ponastavovať výnimky, aby antivírusy nezahltili CPU a nespomalili funkčnosť D2000 systémov.
Výnimky na adresáre: štandardne odporúčame pridať adresáre s D2000 a databázami pre D2000, napr. na platforme Windows:
- C:\Program Files\PostgreSQL - inštalácia PostgreSQL databázy
- D:\D2000 - inštalácia D2000
- D:\_FTP - adresár pre FTP update
- D:\_Backup - adresár na vytváranie záloh
Pozn: v prípade antivírov firmy ESET je potrebné pridať do Performance exclusions nielen názvy adresárov, ale aj všetky súbory (tj. za menom adresára je nutné "\*" , napr. D:\D2000\* ). Do Detection exclusions odporúčame pridať súbory z inštalácie D2000 (napr. D:\D2000\D2000_EXE\bin64\* ) a PostgreSQL (napr. C:\Program Files\Postgresql\15\bin\* ).
Na platforme Linux:
- /opt/d2000 - inštalácia D2000 + aplikačný adresár (obsahuje tablespace pre Syscfg, Logfile, Archiv)
- /var/lib/pgsql - inštalácia PostgreSQL databázý
Výnimky na programy v pamäti - kvôli tomu, aby sa antivírusy nesnažili analyzovať komunikáciu (externú - D2000 KOM, medzi procesmi - D2000 Kernel, s databázami - D2000 DbManager). Odporúčame pridať výnimky na D2000 procesy, ktoré spotrebúvajú najviac CPU, štandardne sú to:
- postgres.exe - SQL databáza (pre Oracle DB proces oracle.exe, v prípade Sybase SQL Anywhere 12 procesy dbsrv12.exe a dbeng12.exe)
- kernel.exe
- kom.exe
- calc.exe
- dbmanager.exe, dbmanager_ora.exe
- event.exe, event_edathin.exe
- archiv.exe, archiv_ora.exe
- gtwcli.exe, gtwsrv.exe
- tcts.exe
- alarm.exe
Na platforme Linux:
- postgres, postmaster
- kernel
- kom
- calc
- dbmanager, dbmanager_ora
- event, event_edathin
- archiv, archiv_ora
- gtwcli, gtwsrv
- tcts
- alarm
V prípade niektorých antivírusov (Microsoft Defender) je vhodné sledovať celkovú spotrebu CPU antivíru (msmpeng.exe) v Task Manageri. Ak je vysoká, výnimky sú nedostatočné (a treba nastaviť výnimky pre ďalšie procesy, zvyčajne tie, ktoré majú tiež vysokú spotrebu CPU). Iné antivírusy (ESET NOD) pracujú "v utajení" a spotrebúvajú CPU v kontexte bežiacich procesov - Task Manager tak ukazuje napr. vysokú spotrebu CPU pre postgres.exe.
Negatívne skúsenosti sú aj s programom xagt.exe (FireEye Endpoint Security), ktorý (pravdepodobne kvôli chýbajúcim výnimkám) jednak spotreboval pomerne veľa CPU výkonu (4 zo 16 dostupných CPU) a jednak znefunkčnil niekoľko realtime komunikácií (IEC 870-5-101, IEC 870-5-104).
Užitočné diagnostické nástroje
Na platforme Windows:
- Resource monitor (dostupný z Task Managera) - zobrazenie štatistík o CPU, spotrebe pamäte, diskových operáciách a využití siete
Na platforme Linux:
- utilita iotop slúži na zobrazenie štatistík diskových operácií
iotop (interaktívne zobrazenie aktuálnych hodnôt jednotlivých procesov)
iotop -ao (zobrazenie kumulatívnych I/O štatistík jednotlivých procesov) - utilita ps (zobrazenie informácií o jednotlivých procesoch)
ps -eo pcpu,pid,user,args | sort -nk 1 -r | head -20 (zobrazenie všetkých procesov - využitie CPU, PID procesu, užívateľ a argumenty - a zotriedenie podľa CPU, pričom sa zobrazí 20 procesov s najvyšším využitím CPU)