Harjoitus 7 (w42) – Sivustojen nopeuden mittaaminen – Optimointia

Tehtävänannot Tero Karviselta.

Tehtävässä käyttämäni kokoonpano.

Tee ja raportoi:
– Mittaa omalla koneellasi olevan WordPress-sivun ja samanlaisen staattisen sivun nopeuseroa ‘ab’ työkalulla.
– Asenna Varnish. Mittaa jonkin dynaamisen weppisivun (wordpress tms) suorituskyky ennen ja jälkeen asennuksen. Kuinka suuren hyödyn saat?

Pistin perusasetukset kuntoon. LAMPin ja WordPressin asensin uusiksi koneeseen pikaisesti jotta pääsisin tehtävän kimppuun.

Aloitan lisäämällä wordpress-sivulleni pitkän tekstin, jossa on myös kuvia. Kopioin 20-sivuisen artikkelin Wikipediasta kuvineen.

1-katso tuon pituutta

Nyt luon staattisen kopion tästä sivusta. Tätä varten luon uuden kansion johon kopioin sivuston wget-komentoa käyttäen:
$ mkdir static
$ cd static
$ wget http://localhost/

2- toimii staattisesti

Seuraavaksi voimmekin alkaa vertailla nopeuseroja. Asennetaan AB-työkalu ja ruvetaan töihin:

$ sudo apt-get install apache2-utils

Kokeillaan ensiksi wordpress-sivulle, ja tämän jälkeen staattiselle wordpress-sivulle.

Ei-staattinen:

3

$ ab -c 100 -n 100 http://localhost/

Koe kesti 15.752 sekuntia, ja siinä vain 50% asiakkaista saatiin palveltua alle 14,5 sekunnissa. Tiedostoja siirrettiin nopeuteen 1,4mbps (1400.78 kbps).

Staattinen:

$ ab -c 100 -n 100 http://localhost/~xubuntu/static/

4

Tässä tapauksessa koe kesti 0.014 sekuntia, kaikki asiakkaat palveltiin noin sekunnin sadasosassa ja tiedostojensiirtonopeus oli noin 3.3mbps.

Nopeusero on huomattava kun katsotaan kuinka nopeasti asiakasta pystytään palvelemaan. Staattinen on erittäin nopea. Kokeillaan testiä vielä toisilla numeroilla, jotta näemme eron paremmin.

200 yhtäaikaista pyyntöä: Normaali eli dynaaminen:

1

Testiin menee 31,17 sekuntia tiedostonsiirtonopeudella 1,415mb. Tällä kertaa 50% asiakkaista palvellaan alle 28 sekunnin ja 100% asiakkaista palvellaan 31 sekunnissa.

Staattinen:

1

Tällä kertaa kokeeseen menee 0,218 sekuntia. Kaikki asiakkaista palveltiin alle 0,212 sekunnin. Transfer rate oli tässä tapauksessa todella pieni, vain 418kbps eli 0,4mb, joten teen vielä yhden staattisen koekierroksen jotta voin päätellä mistä tuo nopeuden muutos voisi johtua.

Lisätään lukuja 500:aan:

1

Transfer-rate vain pieneni, joten johtuisiko tämä siitä, että ab-ohjelma tallentaa osan jo läpi käydystä materiaalista välimuistiin? Koetin selvitellä asiaa netistä, mutta en löytänyt selitystä. Toinen kiinnostava asia on se, että 80% ja 90% välillä palvelluista asiakkaista on huomattava nopeuden muutos.

Varnishin käänteisproxyn asennus:

Onneksi kävimme tunnilla Varnishia, joten saimme jonkin idean sen toiminnasta. En kuitenkaan muista, miten varnishin asennus toimintakuntoon täysin meni (en tehnyt muistiinpanoja), joten etsin tietoja ja jatkan tehtävän tekemistä tätä ohjetta silmällä pitäen.

Aloitetaan asennus:

$ sudo apt-get install varnish

Tämän jälkeen mennään konfiguraatioihin:

$ sudo mousepad /etc/default/varnish

Konfiguraatiossa seuraavaan kohtan 6081 muutetaan 80:ksi:

# DAEMON_OPTS=”-a :6081 \

Nyt varnish kuuntelee porttia 80, joten muutetaan apache muualle. Avataan apachen porttitiedosto:

$ sudo mousepad /etc/apache2/ports.conf

Ja muutetaan sinne kohta ”Listen 80” -> ”Listen 8080”.

Seuraavaksi muutetaan tämä vielä virtual-hosts tiedosto:

$ sudo mousepad /etc/apache2/sites-available/000-default.conf

Täällä muutetaan numero Virtual Host 80 -> Virtual Host 8080.

Seuraavaksi käynnistetään apache ja varnish uusiksi:

$ sudo service apache2 restart
$ sudo service varnish restart

Koetan päästä localhostiin käsiksi firefoxilla, mutta en pääse. Jossakin on siis virhe.
8-onglema

Googlettelen ohjeita, ja löydän seuraavanlaisen sivun, jossa tuore tältä vuodelta oleva ohje.

Täällä neuvotaan, että muut ohjeet netissä ovat luultavasti vanhentuneita, ja että pitää ajaa seuraavanlaiset komennot ongelmien ratkomiseksi:

Asennan systemd:n ensiksi:
$ sudo apt-get install systemd-services

Jatkan seuraavaksi ohjeiden mukaan.

$ sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/

$ sudo mousepad /etc/systemd/system/varnish.service

greppi

Siis, kopioimme varnish.servicen systemd/systemiin, ja avaamme sen. Sisällä siellä meillä on kohta, jossa varnish vielä kuuntelee porttia 6081, joten muutetaan se 80:ksi.

1

Käynnistän varnishin uudestaan:

$ sudo service varnish restart

Koetan toimiiko tämä, mutta en edelleenkään saa mitään näkyviin, ja grepillä saan vastaukseksi, että varnish kuuntelee edelleen porttia 6081.

Täältä löydän uuden ohjeen, jonka mukaan systemd:n avulla voidaan käynnistää palvelut uusiksi, ja tämän jälkeen tämän pitäisi toimia kunnolla.

Pitkän säädön jälkeen en ole päässyt etenemään ollenkaan varnishin asennuksessa. Olen käynnyt asetukset useaan kertaan läpi, sekä tsekannut muiden ihmisten ohjeista miten he ovat sen saaneet toimimaan. Kaiken järjen mukaan tämän pitäisi toimia. En keksi muuta vaihtoehtoa kuin sen, että ongelma on varnishin ohjelmaversiossa (Version: 3.0.5-2) ja ohjeiden yhteensopivuudessa. Ongelma toki saattaa johtua siitäkin, että käytän live-tikkua.

Pikaisesti kerrattuna kaikki missä olen tehnyt muutoksia:
1) /etc/default/varnish : DAEMON_OPTS=”-a :80
2) /etc/apache2/ports.conf : Listen 80 -> Listen 8080
3) /etc/apache2/sites-available/000-default.conf : <VirtualHost *:80> -> <VirtualHost *:8080>
4) /etc/systemd/system/varnish.service : –a :6081 -> -a :80

Firebug:

Asennan firebugin pluginin firefoxiin tämän omilta sivuilta

ff

Asennuksen jälkeen otan tarkasteltavaksi oman wordpress-sivuni, joka löytyy ihan netistä. Latasin siitä itselleni myös staattisen version kokeiluja varten.

Katsotaan aluksi netissä olevaa versiota:

ff2

Näemme, että sivuston latauksessa kesti 2.82 sekuntia.

Kokeillessamme tätä staattisella sivustollamme sain tulokseksi 470ms (onload: 678ms), eli 0,47 sekuntia.

Etsi jokin nopeuden analysoinnissa auttava palvelu wepistä ja käytä sitä
Olin tekemässä aluksi Yslow-tehtävää, mutta sen tukeminen on lopetettu aikoja sitten eikä se enää tunnu toimivan uusissa firefox-versioissa, joten tein toisen tehtävän.
Löysin googlelta erään hyvältä vaikuttavan sivun, joka on optimisointi-proxy, mutta halusin pysyä plugin linjalla, joten käytän tähän harjoitukseen seuraavaa pluginia:

Lori:

Tähän tarvitsi ladata addon-bar lisäksi, että tämä toimisi uusimmissa versioissa firefoxia.

https://addons.mozilla.org/fi/firefox/addon/lori-life-of-request-info/

https://addons.mozilla.org/en-US/firefox/addon/the-addon-bar/

Katsotaas miten tämä toimii edellisten sivujen kanssa:

Dynaaminen: 2,024 sekuntia

Staattinen: 0,479 sekuntia

En ole varma nöiden tulosten kanssa johtuuko tämä pienempi ero siitä, että kyseistä pluginia ei ole päivitetty useaan vuoteen, mutta se vaikuttaa ainakin toistaiseksi toimivan joten kuten.

Plugin saa minuta kuitenkin hyvät arvosanat sen helposta käytettävyydestä asennuksen jälkeen. Tuo pluginbar piti asentaa, koska tuotakaan nopeudenmittaajaa ei enään tueta.

Kyseinen plugin baareineen näyttää siis seuraavalta selaimessa:

shw

Lähteet:
https://www.vultr.com/docs/installing-varnish-4-with-apache2-on-ubuntu-14-04
http://deshack.net/how-to-varnish-listen-port-80-systemd/
http://www.wearemobedia.com/blog/varnish-and-debian-8-jessie/
http://terokarvinen.com/otherauthors/eliimatt-wordpress-org-puppet-liimatta-2013/eliimatt.wordpress.com/tag/varnish/index.html

Mainokset

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s