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.

pošli do vybrali.sme.sk
January 11th, 2012 - 16:17
perfekne. K tomu ftp: staci si predsa nechat A zaznam http://ftp.domena.sk. smerovany na povodnu IP.
Reply
January 11th, 2012 at 16:25
no na nasich DNS serveroch A zaznam pre http://ftp.domena.tld negenerujeme ale matchne sa s *.domena.tld ktory pri prepnuti na varnish sa cely presmeruje na danu IP adresu. Kto ma DNS inde a ma specialny zaznam pre http://ftp.domena.tld tak tento problem mat nemusi.
Reply
January 11th, 2012 - 16:27
no bezim odskusat
Reply
January 11th, 2012 - 18:50
o mod_pagespeed neuvažujete?
http://code.google.com/speed/page-speed/docs/module.html
Reply
January 11th, 2012 at 21:21
ano ale podla toho co som o nom cital tak to je len integracia best practices ( napr.http://developer.yahoo.com/performance/rules.html ) do jedneho modulu. Techniky opisane v tomto dokumente je mozne aplikovat aj v prostredi nasho hostingu bez pouzitia tohto modulu.
Reply
January 11th, 2012 - 23:19
Preco Varnish, ked môžete ako reverse proxy použiť nginx? Alebo má Varnish nejake výhody?
Reply
January 11th, 2012 - 23:34
S varnishom uz sme mali skusenosti z inych projektov a je primarne vyvijany pre tento ucel. V zasade sme mohli pouzit aj nginx rovnako ako aj apache, ale varnish sa nam na toto zdal lepsi kvoli roznym podpornym utilitam alebo podpory jazyka C v konfiguracnom subore cim su jeho moznosti takmer neobmedzene.
Reply
January 16th, 2012 at 1:06
A varnish nemá problém s SSL? Ja som čítal kedysi ale možno to uz dorobili, že nepodporuje SSL a treba pred Varnish postaviť Pound alebo nginx ktoré nemajú problém s SSL.
Reply
January 16th, 2012 at 14:23
Ano, varnish SSL nepodporuje a ani sa nechysta (https://www.varnish-cache.org/docs/trunk/phk/ssl.html). Kazdopadne sme postavili pred varnish program stud. Podla http://vincent.bernat.im/en/blog/2011-ssl-benchmark.html umoznuje lepsie skalovat nez nginx.
Reply
January 13th, 2012 - 12:21
ako mate poriesenu bezpecnost dat ulozenych v memcache?
Reply
January 13th, 2012 at 13:55
Kluce su prefixovane hostom, ale je mozne si cez .htaccess nastavit prefixovanie lubovolnym stringom takze bez znalosti tohto prefixu a kluca sa neda k hodnote dostat.
Samotny memcached server bol upraveny aby neinterpretovali niektore prikazy ako flushovanie vsetkych dat a vypis vsetkych dat a klucov.
Reply
January 14th, 2012 - 14:05
Mozem poprosit o trochu podrobnejsi postup ako pouzit memcache vo svojom scripte….THX
Reply
January 14th, 2012 at 16:49
Skus napr. toto: http://www.script-tutorials.com/how-to-use-memcache-with-php/
Reply