This shows you the differences between two versions of the page.
saisp:labs:09:contents:01 [2013/11/11 00:46] 127.0.0.1 external edit |
saisp:labs:09:contents:01 [2014/05/05 13:11] (current) alexandru.carp |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 01. Lorem ipsum ==== | + | ==== 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:<code bash> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | 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:<code bash> | ||
+ | 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" | ||
+ | -- | ||
+ | -- | ||
+ | </code> | ||
+ | |||
+ | 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:<code bash> | ||
+ | root@varnish:~# grep -A 3 'backend default' /etc/varnish/default.vcl | ||
+ | backend default { | ||
+ | .host = "ocw.cs.pub.ro"; | ||
+ | .port = "80"; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | 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:<code> | ||
+ | 192.168.0.3 ocw.cs.pub.ro | ||
+ | </code> | ||
+ | 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:<code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | Pentru început puteți să vă conectați din browserul de pe stația gazdă (''mjolnir'') și să accesați URL-ul aferent: ''<nowiki>http://ocw.cs.pub.ro</nowiki>''. 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:<code bash> | ||
+ | student@mjolnir:~$ sudo apt-get install httperf | ||
+ | </code> | ||
+ | Apoi măsurați conexiunile realizate pentru pagina de la URL-ul ''<nowiki>http://ocw.cs.pub.ro</nowiki>'' folosidn comanda:<code bash> | ||
+ | student@mjolnir:~$ httperf --server=ocw.cs.pub.ro --wsess=2000,10,2 --rate 300 --timeout 5 | ||
+ | </code> | ||
+ | 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. | ||