- Det er enkelt å sette opp en Varnish. Utfordringen ligger i fininnstillingen, mener Kristian Lyngstøl i Redpill Linpro. (Bilde: Marius Jørgenrud)

Rakett-cache er ingen heksekunst

Slik får du opp farten på selv de tregeste nettstedene.

Varnish er en delvis norskutviklet web-aksellerator, som hylles for svært god ytelse og høy kodekvalitet.

Tre av fire større norske nettsteder benytter nå dette friprog-verktøyet. Løsningen sørger for en responstid og kapasitet som ellers ville krevet langt mer maskinvare.

digi.no og de fleste nettstedene til Aller Internett gikk forrige måned over fra webcache-løsningen Squid til den mer moderne Varnish, og opplevde da en enorm ytelsesforskjell.

    Les også:

Etter noen innkjøringsproblemer begynner denne plattformen nå å bli relativt stabil for oss.

I den forbindelse har vi tatt en prat med utvikler og konsulent Kristian Lyngstøl i Redpill Linpro, som er den som har satt opp web-akselleratoren for Aller Internett. Han byr på noen erfaringer for de som har lyst til å prøve løsningen selv.

- Hvordan settes Varnish opp?

- For det første må du ha en webserver. Du kan i utgangspunktet bruke en hvilken som helst webserver, men løsningen er mest testet mot de mest populære, som Apache, sier Lyngstøl.

- Det er ingen krav om å kjøre Varnish på en dedikert maskin, men i realiteten så er det slik at de som trenger Varnish også har behov for dedikert server å kjøre den på. Det er imidlertid ingenting teknisk i veien for å kjøre både Apache og Varnish på samme boks.

Konfigurasjon

- Først må selve webapplikasjonen din settes opp. Den må ikke nødvendigvis spesialtilpasses, men det lønner seg å sette inn header-informasjon som styrer cache-kontrollen. Slik unngår man at all logikken ligger i Varnish. Alt kan uansett også overstyres i Varnish. Det lønner seg dessuten å styre unna cookies, i den grad det er mulig. Veldig mange webapplikasjoner setter cookies som du egentlig ikke trenger.

Grunnoppsettet er ikke spesielt vanskelig Svært lite av regelverket eller konfigurasjonen som styrer hvordan Varnish fungerer er definert på forhånd. Dette er en designavgjørelse, ifølge Lyngstøl.

- Varnish er veldig konservativ med hva den cacher i utgangspunktet, men dette kan overstyres i et eget konfigurasjonsspråk kalt Varnish Configuration Language. Dette ligner programmering og er sterkt inspirert av C. Selve konfigurasjonsfilen blir faktisk oversatt til C og kompileres.

- Enkelt

- Grunnoppsettet er ikke spesielt vanskelig å få til. Det som er vanskelig er å få til er 99,9 prosents cachehit. Utfordringen er gjerne at man ikke begynner med en blank server. Som regel er oppsettet hos kundene våre allerede komplisert.

Programvaren og kildekoden deles fritt ut under en BSD-lisens, noe som betyr at også leverandører av proprietær programvare kan bruke den i egne prosjekter - uten å måtte dele egen kode videre.

Varnish kan lastes ned gratis fra varnish.projects.linpro.no. Det er også lagt ut en relativt omfattende FAQ med en rekke tekniske spørsmål og svar vi ikke går inn på i denne artikkelen.

- Aller Internett har ikke en veldig komplisert infrastruktur rent servermessig. De bruker to Varnish-servere, men kunne i utgangspunktet klart seg med én. Utfordringen ligger i at dere har har mange ulike nettsteder som gjør mye forskjellig. Oppsettet er absolutt ikke enkelt, men er heller ikke veldig hokus pous. Det er jobb, for å si det sånn.

Dersom du bare har statiske nettsider trenger du antakeligvis ikke Varnish i det hele tatt. - Hvem trenger Varnish?

- Det varierer veldig i forhold til trafikken du håndterer. Dersom du bare har statiske nettsider trenger du antakeligvis ikke Varnish i det hele tatt. Du trenger en web-aksellerator når du merker at nettsidene dine ikke svarer fordi det er for mye trafikk, slår Kristian Lyngstøl fast.

Videreutvikling

Den samme Lyngstøl har fått i oppdrag å skrive en utvidelse av Varnish for Aller Internett (AI). En helt ny modul skal sørge for at cachet innhold blir levert i stedet for en feilmelding dersom webserveren bak krasjer.

Utviklingen av denne funksjonaliteten betales av blant annet AI, og når den er ferdig blir den del av Varnish-pakken, fritt tilgjengelig for alle etter reglene om videreutvikling av friprog-løsninger.

- Utfordringen har vært å synkronisere endringene med resten av prosjektet. Men det er den vanlige utfordringen innen fri programvareprosjekter der man har mange utviklere, fortsetter Lyngstøl.

Ytelse

- Aller Internett har mellom 1000-5000 requests i sekundet. Når man ser de tallene forstår man litt bedre hvilken skala det er snakk om. Vi hadde en periode der cache-andelen bare var på 93 prosent, det var såpass lavt at det ble et problem. Nå kjører dere på godt over 99 prosent, smiler han.

Direkteovervåkningen av Aller Internetts cacheløsning avslører en treffprosent på godt over 99 prosent. Dette er nettinnhold som dermed leveres fra Varnish uten å belaste webserver. Skjermbildet avslører også nærmere 1600 innkommende http-forespørsler i sekundet.
Direkteovervåkningen av Aller Internetts cacheløsning avslører en treffprosent på godt over 99 prosent. Dette er nettinnhold som dermed leveres fra Varnish uten å belaste webserver. Skjermbildet avslører også nærmere 1600 innkommende http-forespørsler i sekundet.

    Les også:

Til toppen