ugrás a tartalomhoz

Archívum - Júl 23, 2017

Egyszerű skálázódás

Hidvégi Gábor · 2017. Júl. 23. (V), 10.22
Már korábban is felmerült, de A frontend állapota 2017-ben című fórumtémában az egyik fő érv az állapot szerveroldalon történő kezelése ellen az volt, hogy ez jelentősen megnehezíti a backend munkáját, legrosszabb esetben az egész szolgáltatás jelentős lelassulását, leállását okozhatja. Mivel a téma fontos, ezért érdemes külön foglalkozni vele.

Elmélet

A skálázódás egy szolgáltatás fontos tulajdonsága, amely azt a képességét adja meg, hogy nagy terhelés esetén a rendszer hogyan viselkedik, mekkora válaszidők várhatóak. Ez utóbbi sokmindentől függ, külsőleg a kliens szerverhez való kapcsolódási sebességétől (például mobiltelefonon befolyásolja az időjárás, a térerő, az adott cellán lévő más felhasználók száma), valamint az egyes rendszerkomponensektől (milyen programkörnyezetet választottunk, mennyi adattal kell dolgoznunk, milyen kapcsolat van a részegységek között, mekkora a terhelésük stb.). Egy alkalmazás bármelyik összetevője lehet szűk keresztmetszet, ami kihatással van az egészre, így fontos a megfelelő tervezés.

Gyakorlat

Az első és legfontosabb, hogy folyamatosan mérni kell az egyes részek teljesítményét. Ha van hozzáférésünk, az operációs rendszer feladatkezelőjében láthatjuk, hogy az egyes processzek mekkora CPU terhelést okoznak és mennyi memóriát foglalnak, de lehetőség van szoftverből is figyelni az erőforrásokat, például a Nagios segítségével.

Sokszor a legegyszerűbb lehet a szerveroldalon a hardverelemek jobbra, gyorsabbra cserélése, a memória bővítése például jótékony hatással van mindenre: az operációs rendszer vagy az adatbázisszerver többmindent tud gyorsítótárazni, de ugyanígy a merevlemezek cseréje SSD-re is jelentősen javíthat a válaszidőkön.

Ha egy szerver már nem bírja, a legkönnyebb az adatbázist egy másik (virtuális) gépre áttenni.