Lassú weboldal gyorsítása

Napjainkban a legnépszerűbb weboldalak, mint például a Facebook vagy a Twitter a weboldal gyorsítását használják a gördülékeny működéshez. A számos felhasználótól érkezett nagy mennyiségű igény feldolgozása speciális beállításokat igényel. Az említett weboldalak közös tulajdonsága, hogy gyorsítótárat (cache) használnak, az adatokat adatbázisokból nyerik, így könnyebben megbirkóznak a terheléssel.

Az ilyen terjedelmű weboldalak RAM-on keresztüli cache-elést használnak, mely meglehetősen gyors és sok kérést képes feldolgozni. A legnépszerűbb gyorsításhoz használt technológiák közé a Varnish és Memcache tartozik, de ezek nem teljesen tökéletesek az osztott tárhelyen való használathoz. A fent említett weboldalakon teljes ellenőrzés alatt tartják a futó alkalmazásokat, ezzel szemben az osztott tárhelyen több ezer különböző alkalmazás fut.

A már említett Varnish és Memcache eszközöket ezért úgy kellett módosítani, hogy osztott tárhelyen is hasznukat vehessük. A változtatások főleg a felhasználók megosztását, egyes parancsok letiltását és a virtuális host-ok adatbázisával való kapcsolatot érintik. A weboldal gyorsabb betöltése érdekében PHP gyorsítót is használhatsz.

A gyorsításhoz használt eszközök pozitív hatással vannak a tárhely megbízhatóságára is, mivel a varnish és a memcache szerver nagy mennyiségű kérést is rövid időn képes feldolgozni. A weboldal gyorsasága a cache-elés következtében akkor is stabil, ha a szerver egyébként túlterhelés miatt lassú.

Memcache


A memcache egy megosztott cache memória, illetve key = value adatbázis. Az adatbázisban az értékek mentése egy kulcs alapján történik, a későbbi rákeresés szintén a kulcs alapján valósul meg, ami egyszerű és gyors keresést eredményez. Mivel a memcache az adatbázis eredményeinek mentésén alapszik, a dinamikus weboldalaknál (CMS rendszereknél vagy e-shopokoknál) használva a leghatékonyabb. Az adatbázisban legfeljebb 1 MB-s adat mentése engedélyezett. A memcache megtalálható a webes alkalmazások legtöbbjében.

A memcache a localhost:11211 szerveren található.

Az általunk módosított memcache könyvtár a felhasználó azonosítójával prefixelt kulcs alapján működik. Az azonosítók értékét a .htaccess fájlban lehet változtatni, ezzel azt biztosítva, hogy az azonos CMS rendszerek használata esetén elkerüljük az ütközéseket.

A .htaccess fájlban a következő kulcsok használata lehetséges:

  • memcache.prefix_host_key 1 – a kulcs elé írd be a Host előtagot
  • memcache.prefix_host_key_remove_subdomain 0 – aldomain eltávolítása (az adatok meg vannak osztva az aldomainek között)
  • memcache.prefix_host_key_remove_www 1 – www. előtag eltávolítása
  • memcache.prefix_static_key no value – statikus előtag 

A memcahe segítségével való programozáshoz a http://php.net/manual/en/book.memcache.php linken található egy útmutató. Ha az adatbázisban gyakran használt adatok szerepelnek, elmentheted őket a memcache-ben.

Egy ideje a PHP sessions-nél is használjuk ezt a beállítást, amely az adatbázis szervereinken volt. Az adatbázis szerver akadozása az egész hosting szakadozását okozta, ezért memcache szervereket használunk, amelyekbe PHP sessions-t táplálunk. A telepítés óta ezzel a gonddal nem találkoztunk.

Varnish


A varnish egy meglehetősen gyors reverse proxy, amely a weboldal statikus tartalmát egyenesen a RAM-on keresztül tudja cache-elni, vagy lokálisan a merevlemezre, így SSD merevlemezek használatánál nagyon gyors a hozzáférés. A reverse proxy egy vagy több szerver előtt állhat, és ezek között oszthatja a terhelést. A lekérdezéseket a webszerverekre küldi, de ha az adatokat már tartalmazza, a webszerver helyett közvetíti. Ezzel csökkenti a webszerver terhelését, amely más feladatokat végezhet. A képek, HTML, JS, CSS cache-eléséhez nagyon eredményesen használható. A cdb adatbázissal kellett csatlakoztatni, ami nem volt egyszerű, mivel a varnish saját nyelvében a cdb adatbázis nem támogatott. Szerencsére a C programozási nyelvet támogatja, így a cdb adatbázis támogatását könnyen tudtuk pótolni. A be- és kikapcsolás lehetőséget a DNS szintjén lehetett megoldani. Elég, ha a weboldal IP címét a 195.210.29.47 címre változtatod. Ha csak tesztelni szeretnéd a weboldal működését a varnish-sal, elég a hosts fájlt beállítanod erre az IP címre.

Figyelem! A 6082 porton nem elérhető a webadmin felület, a porton keresztül a rendszer beállításai végezhetők el. Ezt nyilvánvaló okból az osztott tárhelyen nem engedhetjük meg.

PHP gyorsítás


A PHP alkalmazások gyorsítása a PHP gyorsító használatába rejlik. A mi esetünkben ez az eAccelerator. Ez a PHP gyorsító a PHP forráskódját fordítja le bytekódra és a továbbiakban ezt a kódot használja, így nem szükséges a PHP skripteket minden egyes hívásánál bytekódra fordítani, ami gyorsabb feldolgozást eredményez. A szervereinken a PHP gyorsítást már hosszabb ideje használjuk, a PHP4-nél alapértelmezetten be van kapcsolva. A PHP5 és PHP5.3-nál azonban a fellépő problémák miatt kikapcsoltuk. A weboldalak többségénél nincs vele gond, teszteléssel biztosra mehetsz.

Frissítve: 23. szeptember 2021

Hasznos volt ez a cikk?

Kapcsolódó cikkek

Need Support?
Can't find the answer you're looking for?
Contact Support