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.
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 - v tomto prípade 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 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 trezory 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 trezorov, ktorá má štandardne 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íry
V prípade použitia antivírov a antimalware programov (Microsoft Defender, ESET Nod, Symantec a iné) je nutné správne ponastavovať výnimky, aby antivíry nezahltili CPU a nespomalili funkčnosť D2000 systémov.
Výnimky na adresáre: štandardne napr.
- 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
Výnimky na programy v pamäti - kvôli tomu, aby sa antivíry nesnažili analyzovať komunikáciu (externú - kom, medzi procesmi - kernel, s databázami - 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
- dbmanager.exe, dbmanager_ora.exe
- event.exe
- archiv.exe, archiv_ora.exe
V prípade niektorých antivírov (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íry (ESET NOD) sú "zákernejšie" a spotrebúvajú CPU v kontexte bežiacich procesov - Task Manager tak ukazuje napr. vysokú spotrebu CPU pre postgres.exe.