Ajánlott adatbázis-szerver konfiguráció a Novitax szoftverekhez
A Novitax ügyviteli szoftverek nagyon sok adatbázis-műveletet végeznek, ezért gyors programműködést elsősorban az adatbázis-szerver hardvereinek helyes megválasztásával érhető el. Az adatbázis-szerver számítógép másfajta műveleteket végez, mint az irodában használt egyéb szerverek – például a fájlszerver – ezért a hardverrel szemben támasztott követelmények is mások. az a számítógép, amely kiválóan alkalmas fájlok megosztására, nem biztos, hogy adatbázis-szervernek is megfelelő.
Ezt a dokumentumot elsősorban az 5 – 25 felhasználó egyidejű programhasználatát igénylő ügyfeleink számára készítettük, szem előtt tartva a hardver megbízhatóságát, költséghatékonyságát és minél egyszerűbb alkalmazhatóságát (a megvalósítás ne igényeljen speciális ismeretet).
A háttértároló
A háttértároló helyes megválasztása különösen fontos, mert:
- sebessége alapvetően befolyásolja a programok sebességét
- a hardverrel szemben támasztott követelmények eltérnek az egyéb célra használt számítógépeknél ideális paraméterektől
Az egyéb szoftverek által végzett tipikus fájlműveletek elsősorban szekvenciálisan (az elejétől-a végéig) a teljes fájlt olvassák/írják, az adatbázis kezelők viszont csak az adatbázis-fájloknak egy kis részével foglalkoznak. Ráadásul egy-egy művelethez a fájl egészen különböző helyein található adatokat kell olvasni/írni. Ezért egy adatbázis-szervernél a háttértároló szekvenciális sebességparaméterei érdektelenek, helyettük a „random” olvasási/írási sebességparamétereket fontos figyelembe venni. Nehezíti a választást, hogy a háttértárolókról a gyártó csak a szekvenciális sebességadatokat szokta feltüntetni.
Általánosságban annyi mondható, hogy Winchestert semmiképp nem érdemes az adatbázis-fájlokat tároló háttértárnak választani, helyette inkább SSD vagy NVMe háttértárra kerüljön az adatbázis.
Érdemes olyan háttértárolót választani, amelyről be lehet szerezni egy erre alkalmas tesztprogrammal készített sebességadatokat. Ilyen tesztprogram például az ingyenesen használható CristalDiskMark, amely letölthető az alábbi linkről: http://crystalmark.info/software/CrystalDiskMark/index-e.html
A következőekben megadjuk néhány adattároló mérési eredményeit ezzel a tesztprogrammal.
- SSD és/vagy NVMe adattároló választása ellen az alábbi érvek szoktak felmerülni:Kisebb tárolókapacitást adnak, mint a Winchesterek: A Novitax programban egy cég egy évre vonatkozó adatai ritkán haladják meg az 500 MB-ot, de még egy évi 2-3 millió bizonylatot tartalmazó adatbázis mérete is 5 GB alatt marad, ezért a kisebb tárolókapacitás nem szokott problémát jelenteni. A Novitax programban elég csak az adatbázis fájlokat elhelyezni a gyors háttértárolón, az operációs rendszer, a programok és a felhasználók egyéb fájljai és az adatbázisok biztonsági mentései másik – akár winchesteres – háttértárra is kerülhetnek.
- Sok írási/olvasási művelet után egyre lassabbá válik az eszköz: Ez a probléma még intenzív használat esetén is csak évek alatt válik jelentős tényezővé. Érdemes rendszeres időközönként futtatni egy kiválasztott sebességtesztelő programot (például a CristalDiskMarkot) és elmenteni az aktuális sebességadatokat. Amennyiben érzékelik a rendszer lassulását és a mérések igazolják, hogy ennek oka a háttértároló avulása, akkor érdemes újra cserélnie a tárolókat. Hasonló problémától a Winchesterek sem mentesek, de ott a használati idő függvényében elsősorban nem a sebesség, hanem az adatbiztonság romlik.
Az alábbiakban bemutatjuk néhány háttértároló sebességadatait a CristalDiskMark programmal.
Minden háttértárolónál csak a 4K sorban szereplő adatok lényegesek az adatbázis-szerver alkalmasságának megítéléséhez.
A memória
Az adatbázis-kezelő képes a teljes adatbázis tartalmát a memóriában tartani és minden adatlekérdező műveletet a hardver által biztosított memóriaműveletek sebességével elvégezni. Mindezekhez az alábbi szempontokat érdemes figyelembe venni:
- A processzor-, az operációs rendszer- és a telepített adatbázis-kezelő szoftver is 64 bites legyen: csak ebben az esetben biztosítható a szükséges memóriamennyiség.
- Legyen elegendő fizikai memória: A számítógépbe épített fizikai memória mérete lehetőleg több legyen, mint az alábbi képlet alapján számított méret:
4 GB az operációs rendszer és az adatbázis-kezelő alap folyamataihoz
+ 2 * a felhasználók által egyidejűleg használt adatbázisok összes fájlmérete
+ amennyiben terminál szerverként is használja az adatbázis szervert, akkor: 1 GB * az egyszerre bejelentkező felhasználók maximális száma.
Példa1: 20 felhasználó, mind ugyan ahhoz a 3 GB méretű adatbázishoz csatlakozik, és terminál szerveren futtatják a kliens-alkalmazásokat: 4 GB + 2 * 3 GB + 20 GB = 30 GB a minimális memóriaméret.
Példa2: 20 felhasználó, mindenki különböző, egyenként 500 MB méretű adatbázishoz csatlakozik, és terminál szerveren futtatják a kliens-alkalmazásokat: 4 GB + 2 * 0,5 GB * 20 + 20 GB = 44 GB a minimális memóriaméret. - A memória sebessége: A memóriaműveletek sebességét elsősorban a memória-modulok órajel frekvenciája határozza meg, érdemes minél magasabb frekvencián is működőképes modulokat vásárolni. A memóriamodulok órajel frekvenciája, lehetőleg ne legyen kisebb, mint 2133 MHZ.
A processzor
Az adatbázis szerver – amennyiben rendelkezésre áll elegendő memória és a háttértár is elég gyors – intenzíven használja a processzort, amelynek legfontosabb jellemzői a következők:
- 64 bites utasításkészlet: Az adatbázis-kezelő számára biztosítandó memória mennyisége miatt ez nagyon lényeges szempont, de természetesen szükséges, hogy a telepített operációs rendszer és adatbázis-kezelő szoftver is 64 bitesek legyenek.
- Processzormagok száma: Az adatbázis-kezelő minden adatbázis-kapcsolat (felhasználó) utasításait képes külön processzormagon végrehajtani. Mivel a felhasználók nem küldenek folyamatosan utasításokat az adatbázis-kezelőnek, ezért egy processzormag több felhasználót is ki tud szolgálni úgy, hogy – az esetek többségében – ez nem okoz teljesítményromlást. A processzormagok száma lehetőleg több legyen, mint az alábbi képlet alapján számított érték:
Ha a számítógép „csak” adatbázis szerver, és nincsenek terminál szerveren keresztül csatlakozó felhasználók, akkor: az egyidejűleg csatlakozó felhasználók száma / 4.
Ha a számítógép adatbázis- és terminál szerver is egyben, akkor: az egyidejűleg csatlakozó felhasználók száma / 2.
Példa1: Csak adatbázis-szerver, 20 kliens felhasználóval: 20 / 4 = 5 processzormag minimum.
Példa2: Adatbázis és terminál-szerver, 20 csatlakozó felhasználóval: 20 / 2 = 10 processzormag minimum. - A processzor órajel-frekvenciája: Ugyanazon felhasználótól érkező kéréseket az adatbázis-kezelő nem párhuzamosítja (rendszerint erre azért sincs mód, mert az ügyviteli szoftvereknél tipikusan a következő művelet végrehajtásához szükség van a jelenlegi művelet eredményére), ezért egyazon felhasználó számára biztosított műveleti sebességet leginkább a processzor órajel-frekvenciája határozza meg. Az így meghatározott sebességnek abban is jelentősége van, hogy a processzormag mikor szabadul fel a következő felhasználó számára. A processzor és a memória órajel frekvenciája és a műveletek végrehajtási sebessége között nagyjából lineáris, egyenes arányosság áll fenn, tehát ha mind a processzor- mind a memória órajel frekvenciáját megnöveljük 10%-al, akkor az adatbázis műveletek is kb. 10%-al gyorsabban hajtódnak végre. Anyagi lehetőségei szerint válassza a leggyorsabb processzor és memória órajel-frekvenciát (a sebességnövekedés feltétele az elegendő fizikai memória megléte is, amint azt fent említettük).
Hagyományos kliens-szerver vagy terminál-szerveres használat
Amennyiben az adatbázis-szerverhez csatlakozó klienseknél nem biztosított legalább 1 GBit/sec-os hálózati sebesség és/vagy a kliens számítógépek hardvere lassú, akkor érdemes az adatbázis szervert terminál szerverként is használni. Ez növeli a szerver kiépítésének hardver és szoftver költségeit is, viszont gyorsabb programműködés érhető el. Ha a hagyományos hálózatos működés biztosításához néhány kliens számítógépet le kellene cserélni, akkor valószínűleg a terminál szerveres megoldás összességében olcsóbban megvalósítható a meglévő kliensekkel is.
Számítógépek működési sebességének összehasonlítása
Az alábbi teszteket több mint 1 millió adatsort tartalmazó adatbázis-táblákkal készítettük. Az oszlop színe, az adott tesztet futtató számítógép konfigurációt azonosítja [a konfiguráció leírása a grafikon alatt]. Az oszlopok felett olvasható a műveletek végrehajtási ideje percben. Az oszlopok alatt a párhuzamos felhasználók száma látható [minden egyes felhasználó ugyan azokat az adatbázis-műveleteket végezte]. Ha az adott műveletet több felhasználó is futtatta párhuzamosan, akkor az oszlop fölött az átlagos végrehajtási időt tüntettük fel.