Burstable EC2 VPN: standard- eller ubegrænsede CPU-kreditter?
Den ene tilstand drosler ved basislinjen, den anden fortsætter og kan fakturere dig. Regn kreditterne igennem, før en lille instans bliver din gateway.
En lille VPN-gateway består en hastighedstest, føles fin og bliver derefter dårligere efter frokost. Instansen løj ikke under testen; den brugte kreditter, som den havde optjent, mens den var ledig. Burstable-instanser er designet til netop det, hvilket gør en kort benchmark til en dårlig forudsigelse for en eftermiddag med overførsler. De to kredittilstande fejler også på hver sin måde, og valget mellem dem er den egentlige beslutning.
Hvor hastighedstesten lånte fra
Én CPU-kredit er én vCPU, der kører ved fuld udnyttelse i et minut. En burstable-instans optjener kreditter ved sin basislinje og bruger dem, når den overskrider den. En ledig nat opbygger en saldo; en travl morgen trækker den ned.
Derfor ser den første test god ud. Instansen havde et opsparet budget, brugte det på krypteringsarbejde og rapporterede en sund hastighed. Intet i resultatet fortæller dig, hvad der sker, når saldoen når nul. Benchmarkt målte et udbrud, og et udbrud er det, instansen er designet til at levere. Den målte aldrig den stabile tilstand, du er ved at gøre dig afhængig af.
Regnestykket du skal lave
Input er basislinjeprocenten pr. vCPU, antallet af vCPU’er, den akkumulerede saldo og den belastning, du forventer. Kun som illustration: tag en hypotetisk instans med to vCPU’er, en basislinje på ti procent pr. vCPU, 24 akkumulerede kreditter og én vCPU fuldt beskæftiget, mens den anden er ledig. Disse tal er erklærede input, ikke specifikationen for nogen 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 hoursUnder de antagelser er budgettet væk på cirka en halv time. Baggrundsarbejde, skiftende belastning og instansens egen bogføring flytter resultatet, og intet af dette forudsiger VPN-gennemstrømning. Det forudsiger, hvornår den vedvarende begrænsning begynder at bide.
Bemærk også den anden aflæsning: én travl vCPU er i dette eksempel cirka halvdelen af den samlede CPU-kapacitet. En moderat samlet procentdel kan skjule en mættet kerne, så se på adfærden pr. kerne sammen med kredittallene.
Standard og Unlimited: samme nul, forskellig betydning
I Standard-tilstand begrænser en opbrugt saldo vedvarende CPU mod basislinjen. Instansen arbejder videre, bare langsommere, og loftet er forudsigeligt. I Unlimited-tilstand kan instansen fortsætte med at trække på overskudskreditter, efter at saldoen rammer nul, og vedvarende brug over basislinjen kan give gebyrer efter tjenestens regnskabsregler.
Så en CPUCreditBalance på nul betyder drosling i den ene tilstand og mulig fakturering i den anden. Det er hele sammenligningen, og derfor er det misvisende at læse metrikken uden at læse tilstanden.
Overskud er heller ikke en simpel faktura pr. kredit. Senere drift under basislinjen kan nedskrive overskudsforbruget, og andre gebyrbetingelser gælder. Kontroller den konfigurerede tilstand og tjenestens aktuelle regler i stedet for at stole på en påstand om gratisniveau fra et gammelt blogindlæg.
Hvad du skal holde øje med under rigtigt arbejde
Registrer CPUCreditUsage og CPUCreditBalance sammen med overførslens varighed og hastighed. På Unlimited skal du tilføje CPUSurplusCreditBalance og CPUSurplusCreditsCharged. AWS’ guide til overvågning af CPU-kreditter forklarer, hvad hver af dem rapporterer, og hvor ofte.
Test igen med repræsentativ samtidighed og tilstrækkelig varighed til at se tendensen, og registrer startsaldoen. En ledig morgen og en travl eftermiddag er ikke det samme eksperiment, selv med identiske kommandoer.
Grænser, der ikke er CPU
Netværksbåndbredde har sin egen basislinje og udbrudsadfærd, og grænser for pakkehastighed eller antal forbindelser kan binde før CPU’en. Hukommelse betyder noget, når VPN-implementeringen holder tilstand pr. forbindelse, og en lille instans kan løbe tør for den længe før, den løber tør for kreditter.
En sund kreditsaldo beviser derfor én ting: CPU-budgettet er ikke den aktuelle begrænsning. Den siger intet om netværksstien, og intet om, hvad der sker ved dobbelt samtidighed. Hold øje med netværksmetrikkerne i samme vindue som kreditmetrikkerne, så et fald i gennemstrømning har en mulig årsag i stedet for en teori.
At vælge en basislinje med vilje
Brug den målte vedvarende belastning til at vælge en basislinje, eller accepter udbrud eksplicit og budgettér for det. Begge svar er forsvarlige, når de er skrevet ned; ingen af dem er forsvarlige, når de udledes af en andens vellykkede videostream.
Hvis gatewayen er bærende, skal du behandle kredittilstanden som en del af kapacitetsplanen i stedet for en standard, du aldrig har åbnet. Den tilstand, du vælger, er det svigt, du kan forudsige.