Webové akcelerátory využívajú všetky veľké weby ako Facebook či Twitter. Vďaka nim sa pri opakovanom prehliadaní zobrazujú rýchlejšie. K najpopulárnejším technológiám na akceleráciu patria Memcache a Varnish. Od nového roku ich máte k dispozícii aj u nás.

Použitie akceleračných techník vplýva pozitívne nielen na prevádzku webu, ale aj na stabilitu hostingu. Request vybavený na priamo na strane klienta bude vybavený rýchlejšie, ako request, ktorý vybaví nejaký vzdialený server.   Cachovaná web stránka je býva odolnejšia voči prípadným problémom s výkonom web-serveru alebo databázového serveru.

Memcache

Memcache je distribuovaná pamäťová cache resp. key = value databáza. Do tejto databázy sa vloží pod určitým kľúčom hodnota a následne sa pomocou tohto kľúča daná hodnota znova vytiahne. Je to veľmi rýchle a veľmi jednoduché. Memcache sa najčastejšie používa na ukladanie výsledkov z databázy, takže sa lepšie hodí pre dynamicky generované web stránky, ako sú rôzne CMS alebo e-shopy. Je však možné do nej ukladať akékoľvek dáta do veľkosti 1 MB/kľúč. Podpora Memcache sa nachádza v každej webovej aplikácii, ktorá to myslí s produkčným nasadením aspoň trošku vážne.

Na našom hostingu sa nachádza Memcache na adrese localhost:11211. Programátorom webových aplikácií sa môže hodiť materiál pre programovanie pomocou Memcache. Ak viete, že danú hodnotu, ktorú mate v databáze, budete používať častejšie a že sa nemení, rovno ju môžete dať do Memcache.

Od minulého roka máme takéto upravené nasadenie použité pre PHP sessions, ktoré sme mali skôr na databázovom serveri. Lagovanie na db serveri spôsobovalo lagovanie na celom hostingu. Problém sme vyriešili použitím Memcache serverov, do ktorých vkladáme PHP sessions. Od nasadenia sme už takýto problém nezaznamenali.

Varnish

Varnish je veľmi rýchla reverzná proxy určená najmä na cachovanie statického obsahu, buď priamo do RAM alebo lokálne na disk. Reverzná proxy sa stavia pred jeden alebo viac webových serverov, na ktoré môže – ale nemusí – rozdeľovať záťaž. Na tieto servery preposiela požiadavky a pokiaľ už daný obsah má u seba, vybaví požiadavku miesto web-servera. Tým zníži nároky na web server, ktorý sa môže venovať iným požiadavkám. Varnish je teda skvelý na cachovanie obrázkov, HTML, javascriptov, CSS – skrátka statického obsahu.

V našom prípade bolo treba prepojiť Varnish s CDB databázou. Nebolo to úplne priamočiare, keďže Varnish vo svojom vlastnom jazyku CDB databázu nepodporuje. Našťastie podporuje jazyk C, takže bolo možné podporu pre CDB databázu doprogramovať. Nutnosťou bola možnosť zapnúť alebo vypnúť ho podľa potreby. To sa rieši na úrovni DNS systému. Pre spustenie Varnishu stačí zmeniť adresu stránky na IP 195.210.29.47. Pokiaľ si len chcete vyskúšať, ako bude stránka fungovať cez Varnish, nemusíte nič meniť, stačí si nastaviť svoj hosts súbor na IP adresu 195.210.29.47 pre doménu, na ktorej to chcete otestovať.

PHP akcelerácia

Treťou technológiou, ktorú na našich serveroch využívame už dávnejšie, je PHP akcelerácia. My používame eAccelerator. Tento PHP akcelerátor preloží prvýkrát zdrojový kód PHP aplikácie do bytekodu a ďalej používa už priamo ten. Spôsobí tým rýchlejšie spracovanie, pretože potom už nie je potrebné neustále parsovať PHP skripty do bytekodu znova a znova pri každom requeste.

PHP akcelerácia je na PHP 4 je zapnutá defaultne. V prípade PHP 5 a PHP 5.3 ju treba najskôr zapnúť a pred nasadením do ostrej prevádzky web poriadne otestovať.
Rýchlejšie a stabilnejšie

Akcelerácia na vašom hostingu

Nasadenie Memcache-u a Varnish-u na našich serveroch nebolo vôbec jednoduché. Museli sme ich upraviť pre potreby zdieľaného hostingu, na ktorom existuje vedľa seba tisíce užívateľov s rôznymi aplikáciami. Všetky akcelerátory sa zapínajú cez WebAdmin. Vyberiete doménu, ktorú chcete spravovať, v ľavom menu kliknete na tlačidlo Web a následne na záložku HTTP akcelerácia. Zatiaľ ide len o BETA verziu, pretože sme to zatiaľ testovali len interne. Budeme radi ak nám dáte feedback, ako sa vám s akcelerátormi pracuje.

Pozor! Po aktivovaní Varnish-u dôjde k zmene prestane fungovať FTP, pretože sa začne používať iná IP adresa ako je uvedená v A-zázname. Po aktivovaní je preto potrebné použiť nejaký alternatívny spôsob pripájania na FTP.

Podrobnú verziu tohoto článku a všetky potrebné postupy nájdete na našej wiki.
Pripravujeme tiež článok o tom, ako spojazdniť Memcache na populárnych CMS a e-shopoch.

Komentáre