01. [20p] Utilitate Varnish

Dorim să urmărim efectul folosirii Varnish față de accesarea directă a unui server web. Vom folosi utilitarul httperf pentru a evalua comportamentul accesului web folosind Varnish sau fără Varnish.

Pe mașina virtuală varnish (accesibilă folosind ssh -l root 192.168.0.3) este instalat Varnish. Este configurat să asculte conexiuni pe portul 80, lucru pe care îl putem verifica folosind comanda:

root@varnish:~# netstat -tlpn | grep varnish
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2366/varnishd
tcp        0      0 127.0.0.1:6082          0.0.0.0:*               LISTEN      2364/varnishd
tcp6       0      0 :::80                   :::*                    LISTEN      2366/varnishd
tcp6       0      0 ::1:6082                :::*                    LISTEN      2364/varnishd

Portul 6082 este portul de administrare. Configurația aferentă se găsește în fișierul /etc/default/varnish. Putem folosi un editor/viewer sau comanda de mai jos pentru a investiga configurația:

root@varnish:~# grep -A 4 DAEMON_OPTS /etc/default/varnish | grep -v '^#'
--
--
DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"
--
--

Pentru a urmări utilitatea folosirii Varnish, vrem să ne conectăm la un server pe legătură directă și prin intermediul Varnish. Alegem serverul ocw.cs.pub.ro. Pentru aceasta, serviciul Varnish a fost configurat să folosească pe post de back end ocw.cs.pub.ro. Putem consulta această configurație în fișierul /etc/varnish/default.vcl folosind un editor/viewer sau comanda de mai jos:

root@varnish:~# grep -A 3 'backend default' /etc/varnish/default.vcl 
backend default {
    .host = "ocw.cs.pub.ro";
    .port = "80";
}

Configurația de mai sus înseamnă că pentru cererile venite către serviciul Varnish se vor realiza cereri mai departe către serverul ocw.cs.pub.ro. Cererile vor fi cache-urite astfel încât viitoare cereri vor fi servite direct din cache.

Evaluarea o vom face de pe sistemul gazdă (mjolnir). Pentru acesta va trebui să configurăm sistemul astfel încât cererile către ocw.cs.pub.ro să ajungă la mașina virtuală varnish. Pentru aceasta, folosiți un editor și adăugați în fișierul /etc/hosts linia:

192.168.0.3	ocw.cs.pub.ro

Cu linia de mai sus, cererile către ocw.cs.pub.ro vor ajunge la mașina virtulă varnish. Putem verifica acest lucru folosind comanda:

student@mjolnir:~$ ping ocw.cs.pub.ro
PING ocw.cs.pub.ro (192.168.0.3) 56(84) bytes of data.
64 bytes from ocw.cs.pub.ro (192.168.0.3): icmp_seq=1 ttl=64 time=0.361 ms
^C

Pentru început puteți să vă conectați din browserul de pe stația gazdă (mjolnir) și să accesați URL-ul aferent: http://ocw.cs.pub.ro. O să vedeți că primul acces durează mai mult dar viitoarele accese ale aceleiași pagini sunt mai rapide.

Pentru a evalua acest lucru, instalați utilitarul httperf pe stația gazdă folosind comanda:

student@mjolnir:~$ sudo apt-get install httperf

Apoi măsurați conexiunile realizate pentru pagina de la URL-ul http://ocw.cs.pub.ro folosidn comanda:

student@mjolnir:~$ httperf --server=ocw.cs.pub.ro --wsess=2000,10,2 --rate 300 --timeout 5

Observați în output informații precum Connection rate, Request rate, Net I/O.

Ca să comparăm trebuie să ne conectăm în mod direct la serverul ocw.cs.pub.ro. Pentru acesta ștergeți (sau comentați) linia adăugată anterior în fișierul /etc/hosts și rulați din nou comanda httperf de mai sus. Observați diferențele parametrilor și, astfel, utilitatea folosirii Varnish ca accelerator pentru conexiuni web.

saisp/labs/09/contents/01.txt · Last modified: 2014/05/05 13:11 by alexandru.carp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0