torstai 14. helmikuuta 2013

Tehtävä 5 - Varnish

Tämän viikon tehtävänä oli asentaa Varnish, muuttaa jotain sen asetusta VCL-kielellä ja käyttää liitännäistä Yslow analysointiin ja nopeutukseen.

Suoritin tehtävän koulun läppärillä (hp 2560p) käyttäen live USBia. Käyttöjärjestelmänä toimi Xubuntu 12.10.

Varnishin asentaminen

Aluksi työpöytäni avauduttua asetin näppäimistöni suomeksi, ja hain uusimmat päivitykset

setxkbmap fi
sudo apt-get update

 Päivitysten asennuttua asensin apache-weppipalvelimen ja varnish-http kiihdyttimen.

sudo apt-get install apache2
sudo apt-get install varnish

Testailuni kohteena päätin käyttää omaa wordpress sivustoani.

Varnishin asetukset

Halusin siirtää Varnishin apachen eteen. Siirryin varnishin asetuksiin muokkaamaan default.vcl tiedostoa

cd /etc/default/varnish
sudo nano varnish

Muokkasin tiedostoa niin, että se kuuntelee oletus HTTP-porttia

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"





Tämän jälkeen siirryin muokkaamaan VCl-tiedostoa oikeanlaiseksi.




sudo nano  /etc/varnish/default.vcl


Muutin hostin ip-osoitetta ja porttia.


  backend apache { .host = "127.0.0.1"; .port = "8000";
 
 
 
 

Ongelmia ja ratkaisuita

Seuraavaksi päätin kokeilla toimiiko localhost-sivuni.

sudo a2enmod userdir
localhost/~xubuntu/wordpress

Sain eteeni sivun "503 Service Unavailable - varnish cache server"
Tämän jälkeen koitin uudelleenkäynnistää varnishin

sudo /etc/init.d/varnish restart

Päätin lähteä tutkimaan apachen asetuksia.

sudo nano /etc/apache2/ports.conf

Muutin tietoja seuraavasti

NameVirtualHost *:8000
Listen 127.0.0.1:8000
 
Muutin myös apachen sites enabled kansiossa virtual hostin tietoja.

sudo nano /etc/apache2/sites-enabled/000-default

Vaihdoin virtual hostin nimeksi <VirtualHost *: 8000>

Uudelleenkäynnistin varnishin ja yritin yhdistää localhost/~xubuntu/wordpress sivulle. Tällä kertaa yhdistäminen onnistui.

Päätin kokeilla apache benchillä, nopeutuuko sivuni lataus mikäli varnish on päällä.
Aluksi sammutin varnishin sudo /etc/init.d/varnish stop jonka jälkeen kokeilin wordpressiin yhdistämistä. Laitoin pyyntöjen määräksi 200 ja samanaikaisten pyyntöjen määräksi 100.

ab -n 200  -c 100 localhost/~xubuntu/wordpress

Muutaman testauskerran keskiarvoksi sain noin 0.023 sekuntia.

Tämän jälkeen laitoin varnishin päälle ja kokeilin apache benchiä samoilla luvuilla.

sudo /etc/init.d/varnish restart
ab -n 200  -c 100 localhost/~xubuntu/wordpress

Tällä kertaa sain ajaksi keskimäärin 0.015 sekuntia. Otaksuin näin ollen varnishin toimivan.

Mainittakoon vielä, ettei testeissäni tullut yhtään "failed" pyyntöä.

VCl asetusten säätö

Päätin että haluan muuttaa serverini niemä apachesta johonkin muuhun.
Tutkittuani asiaa, löysin että tämä on mahdollista muokkaamalla kohtaa VCL-tiedostossa kohdan "fetch" jälkeen.
Lisäsin seuraavan.

 unset obj.http.Server; 
 set obj.http.Server = "Olenkuningas"; 

Yslow

Seuraavaksi siirryin Yslow-liitännäisen asennukseen. Liitännäinen tarvitsi ilmeisesti toimiakseen myös Firebug-liitännäisen, joten asensin sen ensimmäiseksi selaimeeni. Asennusten jälkeen restarttasin Firefoxin.
Menin seuraavaksi wordpress-sivustolleni ja kokeilin Yslow liitännäistä.
Painoin "run test" nappulaa. Sain tulokseksi:
Overall performance score 94Ruleset applied: YSlow(V2)URL: http://localhost/~xubuntu/wordpress/

Yslow suositteli minun vähentämään kompontenttien määrää wordpress-sivustollani ja pitämään keksien määrän alhaisena.

Lopputulos

Sain varnishin hyvin toimimaan, muutettua VCL-asetuksia ja mittailtua sivuani Yslow-liitännäisellä. Tehtävään kului noin neljä tuntia.

Lähteet:

http://terokarvinen.com/2012/aikataulu-linux-palvelimena-ict4tn003-7-ict4tn003-kevaalla-2013


http://www.howtoforge.com/putting-varnish-in-front-of-apache-on-ubuntu-debian
http://httpd.apache.org/docs/2.2/programs/ab.html


Ei kommentteja:

Lähetä kommentti