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.