En liten VPN-gateway består en hastighetstest, føles fin, og blir så tregere etter lunsj. Instansen løy ikke under testen; den brukte kreditter den hadde tjent mens den var ledig. Burstable-instanser er laget nettopp for det, noe som gjør en kort benchmark til en dårlig prediktor for en hel ettermiddag med overføringer. De to kredittmodusene feiler også på ulike måter, og valget mellom dem er den egentlige beslutningen.

Hvor hastighetstesten lånte fra

Én CPU-kreditt er én vCPU som kjører med full utnyttelse i ett minutt. En burstable-instans tjener kreditter med grunnlinjetakten sin og bruker dem når den overstiger den grunnlinjen. En ledig natt bygger opp en saldo; en travel morgen tapper den.

Derfor ser den første testen bra ut. Instansen hadde et oppspart budsjett, brukte det på krypteringsarbeid og rapporterte en sunn hastighet. Ingenting i resultatet forteller deg hva som skjer når saldoen når null. Benchmarken målte en burst, og en burst er det instansen er laget for å levere. Den målte aldri den jevne tilstanden du er i ferd med å basere deg på.

Aritmetikken du må gjøre

Inndataene er grunnlinjeprosenten per vCPU, antall vCPU-er, den opparbeidede saldoen og belastningen du forventer. Bare som illustrasjon: ta en hypotetisk instans med to vCPU-er, en grunnlinje på ti prosent per vCPU, 24 opparbeidede kreditter, og én vCPU fullt opptatt mens den andre er ledig. Disse tallene er deklarerte inndata, ikke spesifikasjonen for en bestemt instansstørrelse.

Earn rate:       2 x 10% x 60 = 12 credits/hour
Workload usage:  1 x 100% x 60 = 60 credits/hour
Net draw:        60 - 12 = 48 credits/hour
Accrued budget:  24 / 48 = 0.5 hours

Under disse forutsetningene er budsjettet borte på omtrent en halvtime. Bakgrunnsarbeid, skiftende belastning og instansens egen regnskap flytter resultatet, og ingenting av dette forutsier VPN-gjennomstrømning. Det som forutsies, er når den vedvarende begrensningen begynner å bite.

Legg merke til den andre lesningen også: én opptatt vCPU er omtrent halvparten av den samlede CPU-kapasiteten i dette eksempelet. En moderat totalprosent kan skjule en mettet kjerne, så se på oppførselen per kjerne sammen med kredittallene.

Standard og Unlimited: samme null, ulik betydning

I Standard-modus begrenser en uttømt saldo vedvarende CPU mot grunnlinjen. Instansen fortsetter å jobbe, bare saktere, og taket er forutsigbart. I Unlimited-modus kan instansen fortsette å trekke på overskuddskreditter etter at saldoen når null, og vedvarende bruk over grunnlinjen kan gi kostnader etter tjenestens regnskapsregler.

Så en CPUCreditBalance på null betyr struping i én modus og mulig fakturering i den andre. Det er hele sammenligningen, og derfor er det misvisende å lese metrikken uten å lese modusen.

Overskudd er heller ikke en enkel faktura per kreditt. Senere drift under grunnlinjen kan betale ned overskuddsbruken, og andre kostnadsvilkår gjelder. Sjekk den konfigurerte modusen og gjeldende tjenesteregler i stedet for å stole på en gratisnivåpåstand fra et gammelt blogginnlegg.

Hva du bør følge med på under reelt arbeid

Registrer CPUCreditUsage og CPUCreditBalance ved siden av overføringens varighet og hastighet. På Unlimited legger du til CPUSurplusCreditBalance og CPUSurplusCreditsCharged. AWS' veiledning for overvåking av CPU-kreditter forklarer hva hver av dem rapporterer og hvor ofte.

Test på nytt med representativ samtidighet og lang nok varighet til å se trenden, og registrer startsaldoen. En ledig morgen og en travel ettermiddag er ikke det samme eksperimentet, selv med identiske kommandoer.

Grenser som ikke er CPU

Nettverksbåndbredde har sin egen grunnlinje og burst-oppførsel, og pakkehastighets- eller tilkoblingsgrenser kan binde før CPU-en. Minne betyr noe når VPN-implementasjonen holder tilstand per tilkobling, og en liten instans kan gå tom for det lenge før den går tom for kreditter.

En sunn kredittsaldo beviser derfor én ting: CPU-budsjettet er ikke den gjeldende begrensningen. Den sier ingenting om nettverksveien, og den sier ingenting om hva som skjer ved dobbel samtidighet. Følg med på nettverksmetrikkene i samme vindu som kredittmetrikkene, slik at et fall i gjennomstrømning har en mulig årsak i stedet for en teori.

Å velge en grunnlinje med vilje

Bruk den målte vedvarende arbeidsbelastningen til å velge en grunnlinje, eller godta bursting eksplisitt og budsjetter for det. Begge svarene er forsvarlige når de er skrevet ned; ingen av dem er forsvarlige når de er utledet fra noen andres vellykkede videostrøm.

Hvis gatewayen bærer last, behandle kredittmodusen som en del av kapasitetsplanen i stedet for en standardinnstilling du aldri åpnet. Modusen du velger, er feilen du kan forutsi.

Relaterte artikler