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 a 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 fenn 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 vituális hostok adatbázisával való kapcsolatot érintik. A weboldal gyorsabb betöltése érdekében PHP gyorsítót is használhat.
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 ill. key = value adatbázis. Az adatbázisba 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ó webes alkalmazások legtöbbjében.
A memcache a localhost:11211 szerveren taláható.
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é írja be a Host előtagot
- memcache.prefix_host_key_remove_subdomain 0 – eltávolítsa az aldomaint (az adatok meg vannak osztva az aldomainek között)
- memcache.prefix_host_key_remove_www 1 – eltávolítsa a www. előtagot
- memcache.prefix_static_key no value – statikus előtag
A memcahe segítségével való programozáshoz http://php.net/manual/en/book.memcache.php linken taláható egy útmutató. Ha az adatbázisban gyakran használt adatok szerepelnek, elmentheti őket a memcache-be.
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 hoszting 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 cahe-eléséhez nagyon eredményesen használható. A cdb adatbázissal kellet csatlakoztatni, ami mondhatni 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 weboldala IP címét a 195.210.29.47 címre változtatja. Ha csak tesztelni szeretné a weboldala működését a varnish-al, elég a hosts fájlt beállítani 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 több 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 mehet.