Hvorfor VPS med lokal storage ikke holder

Jeg ser rigtig mange mennesker der anbefaler at man skal bruge en VPS fremfor f.eks. shared hosting. Og begrundelsen er altid “Det vil være hurtigere”. Men denne blogpost handler om hvorfor VPS med lokal storage ikke holder som det skal, og hvorfor du skal passe på med at købe disse.

Der findes en række VPS udbydere i forskellige prisklasser, men rigtig mange mennesker anbefaler firmaer som DigitalOcean. Du betaler $5 USD for en VPS med 512MB ram, 1 core og 20GB (lokal) SSD.

Der er nogle problemer ved at vælge en billig udbyder som DigitalOcean – en af de største er de hastighedsforskelle du kan have på 2 VPSer af samme type.

Teknisk set, ligger VPSer på noget der hedder en hypervisor, det er en dedikeret maskine med en mængde CPU, RAM og harddiske – i DigitalOcean’s tilfælde er disse diske SSD’er. På denne hypervisor vil du finde en række VPSer, det kan være lige fra 1 til mange hundrede, baseret på størrelsen af denne hypervisor, og baseret på hvor meget profit virksomheden vil lave.

De 3 problemer jeg vil komme ind på er: CPU, Disk og mennesker, men lad os starte med CPU’en:

CPU ressourcer

En hypervisor har oftest 1 eller 2 CPU’er, mængden af kerner variere, men i dette tilfælde bruger DigitalOcean Intel Xeon E5-2650L v3 – (hvilket forresten kun køre på 1.8 Ghz), det er en CPU med 12 kerner.

Digital Ocean skriver at de giver 1 kerne for deres $5 USD maskine, hvis alle havde dedikeret cores ville de kun kunne have 12 af disse servere på en server, hvilket ville give dem en omsætning på $60 USD om måneden. Dette ville ikke være muligt faktisk at lave overskud på dette, så ligesom alle andre VPS udbydere bruger man et term der hedder ‘vCPU’, altså en virtual CPU. Når du har virtuelle CPU’er, så bruger du noget der hedder en over-provisioning faktor, kort sagt betyder det at hver fysiske kerne i CPU’en er X antal virtuelle kerner. Det er meget normalt at have en over-provisioning faktor på 2.5 til 4.5 baseret på hvilken udbyder man vælger (pris kan have stor indflydelse på over-provisioning faktor). Der er selvfølgelig også udbydere der har mindre eller højere faktor.

Har du en over-provisioning faktor på 3.5 betyder det at de sælger disse 12 kerner som værende 42 kerner.

Konklusionen er at bare fordi en VPS udbyder siger at du har 4 kerner betyder ikke at hastigheden faktisk er bedre end en anden udbyder der for samme pris eller lidt højere tilbyder 2 kerner. Fordi i bund og grund kommer det ned til hvor meget en udbyder oversælger deres CPU’er, altså hvad deres over-provisioning faktor er.

Hvad man også skal være opmærksom på er at ens hastighed faktisk kan ændre sig over tid, hvis der kommer flere kunder på den hypervisor du ligger på, eller hvis andre kunder på samme hypervisor bruger deres tildelte ressourcer, fordi i sidste ende skal i alligevel dele om de ressourcer som hypervisoren har.

Det betyder også at du som kunde faktisk måske ville få tildelt mindre ressourcer end du ville ved et webhotel af god kvalitet.

Disk hastighed

Et andet godt eksempel er disk hastighed og endnu vigtigere: mængden af IOPS du har tilgængelig. Bruger du en udbyder som bruger et SAN (Storage Area Network) eller NAS (Network Attached Storage), her snakker du oftest til en stor pool af diske, så dine IOPS vil være relativt ens uanset hvad hypervisor du ligger på (da de kan være koblet til samme SAN eller NAS).

Hvad jeg vil komme mere ind på er nemlig lokale diske – noget som rigtig mange lavpris udbydere bruger – nogle af disse er DigitalOcean, Linode og Vultr. De bruger oftest raid 10 local storage, det kan være godt og skidt på samme tid.

En af de gode ting du kan have ved local storage er at du ikke har noget netværk til din storage platform som kan være en flaskehals med dataoverførsel, men samtidig betyder det også at jo flere der (mis)bruger disse lokale diske, jo mere vil det gå udover de ressourcer du har tilgængelige.

Og det er netop det der samtidig er det største problem. Du kan have 2 VPS’er som køre på 2 forskellige hypervisors, hvor dine IOPS er lave på en hypervisor men høje på en anden hypervisor (jo flere IOPS du har jo bedre er det).

Som en lille test lavede jeg en VPS for nogle uger siden, og 2 i dag for at teste forskellen i IOPS, og det beviser netop hele problematikken.

Jeg bruger et redskab i Linux der hedder ‘fio‘ som man bruger til at lave IO performance benchmarks.

De forskellige tests bliver lavet med en io dybte på 32, det er random read/write, en total blocksize på 4 kilobyte og vi arbejder på en 512 megabyte fil.

 

Server 1:

read : io=240304KB, bw=2001.2KB/s, iops=500, runt=120033msec
write: io=239416KB, bw=1994.6KB/s, iops=498, runt=120033msec

Server 2:

read : io=359964KB, bw=2999.2KB/s, iops=749, runt=120021msec
write: io=359124KB, bw=2992.2KB/s, iops=748, runt=120021msec

Server 3:

read : io=480884KB, bw=4006.9KB/s, iops=1001, runt=120017msec
write: io=479084KB, bw=3991.9KB/s, iops=997, runt=120017msec

Du kan finde de fulde resultater på Github.

Som du kan se fra overstående resultater svinger IOPS per maskine ca 250 IOPS, selvom prisen er præcis det samme for alle 3 maskiner. Alle 3 maskiner koster $5 USD om måneden, så kan man spørge hvorfor a der er 1000 IOPS på en maskine, 750 på en anden og 500 på en tredje.

Mennesker

Dette er det sidste punkt, og en af de vigtige – man ser rigtig mange mennesker der udtaler sig om at man altid skal tage en VPS for at kunne få god hastighed på sin side.

Først og fremmest kommer det an på personen der sætter maskinen op, hvis du ikke har den tekniske viden det kræver at sætte maskinen op, så vil din løsning ikke køre ret godt. Man kan selvfølgelig følge nogle af de guides der er på nettet, dog er mange af dem bare basisk opsat, og tager ikke hånd om at tweake de forskellige indstillinger i PHP, Apache, MySQL og generelt på serveren.

Samtidig skal man som person også vælge den rigtige VPS løsning hvis man endelig faktisk har brug for en VPS. De fleste går ind i en gruppe og spørger: “Hvad udbyder skal jeg vælge til min side?”, de forklare ikke hvad deres side laver, hvor mange besøgende den har, hvad de som person kræver af deres hosting udbyder eller løsning. Folk skyder i tågen med navne, men glemmer de helt basale ting.. Nemlig at finde ud af hvad behov den enkelte bruger faktisk har, samt hvilke kompetencer personen har.

Det er 2 store problemer, som gør at folk oftest kan ende op med den forkerte løsning som egentligt ikke passer til deres behov, og fordi det bare gælder om at ‘skyde’ navne ud, uden egentligt at give en begrundelse på hvorfor at personen netop skal vælge den løsning.

Konklusion

Så giver VPS dig en hurtigere side?

Kort svar: Muligvis

Lange svar: Det kommer an på mange ting:

  • Valg af udbyder
  • Hypervisors belastning (både disk, CPU og CPU’ens over-provisioning faktor)
  • Opsætning af serveren
  • Tidligere udbyder du flytter fra

Der er en del eksempler på hvor sider faktisk er blevet langsommere på at flytte fra et webhotel af god kvalitet til en VPS. Der er så mange ting man skal tænke på, ikke nok med at du skal bruge timer på vedligeholdelse (som du som ejer af en hjemmeside højest sandsynligt kan udnytte bedre). Men du kan også ende op med at du ikke får mere ud af det.

Hvis du virkelig kræver flere ressourcer til din side, så skal du først og fremmest finde ud af om du har det rigtige webhotel eller den rigtige VPS – derefter, snak med din udbyder om de har større pakker eller mulighed for at få tildelt flere ressourcer. Hvis ikke du kan få det – hvis du vil have garanteret ressourcer så er den eneste løsning at købe en dedikeret server så du faktisk har ressourcerne for dig selv. Du skal selvfølgelig stadig konfigurere serveren korrekt.

Så skal jeg aldrig købe en VPS?

Jo, hvis du mener du har brug for ting du ikke kan få på et webhotel, eller hvis du ikke har penge til en dedikeret server kan en VPS være en løsning, bare vær opmærksom på at det ikke er garanteret at du faktisk får bedre hastighed eller skalerbarhed ud af din løsning. Og et tip: Lad vær med at gå efter de lavpris udbydere indenfor VPS’er, du får virkelig hvad du betaler for.

Samtidig med det skal det selvfølgelig siges at der faktisk er udbydere der levere god VPS hosting, hvor du har gode IOPS, selv med lokal storage, prisen er dog også en del højere.

Hos Hosting4Real har vi flyttet en række kunder fra VPS’er ned på vores normale webhoteller fordi vi kunne tilbyde en løsning der gjorde kundens side hurtigere end på VPS’en, og ikke nok med det kunne disse kunder fokusere på det som de netop er gode til: Drive deres forretning eller hjemmeside, og have ro i sindet over at der er andre der tager sig af ting fungerer som de skal.