Un gateway VPN mic trece un test de viteză, pare în regulă, apoi se degradează după prânz. Instanța nu mințea în timpul testului; cheltuia credite câștigate cât timp era inactivă. Instanțele burstable sunt proiectate exact pentru asta, ceea ce face un benchmark scurt un predictor slab pentru o după-amiază întreagă de transferuri. Cele două moduri de credite eșuează și ele diferit, iar alegerea dintre ele este decizia reală.

De unde a împrumutat testul de viteză

Un credit CPU este un vCPU care rulează la utilizare maximă timp de un minut. O instanță burstable câștigă credite la rata liniei sale de bază și le cheltuie când depășește acea linie de bază. O noapte inactivă acumulează un sold; o dimineață aglomerată îl consumă.

De aceea primul test arată bine. Instanța avea un buget pus deoparte, l-a cheltuit pe munca de criptare și a raportat o viteză sănătoasă. Nimic din rezultat nu-ți spune ce se întâmplă când soldul ajunge la zero. Benchmark-ul a măsurat un burst, iar un burst este exact ce instanța este proiectată să livreze. Nu a măsurat niciodată starea de echilibru pe care urmează să te bazezi.

Aritmetica pe care trebuie să o faci

Intrările sunt procentul liniei de bază pe vCPU, numărul de vCPU, soldul acumulat și sarcina pe care o aștepți. Doar spre ilustrare, ia o instanță ipotetică cu două vCPU, o linie de bază de zece procente pe vCPU, 24 de credite acumulate și un vCPU complet ocupat în timp ce celălalt este inactiv. Aceste numere sunt intrări declarate, nu specificația unei anumite dimensiuni de instanță.

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

În aceste ipoteze bugetul dispare în aproximativ jumătate de oră. Munca de fundal, sarcina variabilă și propria contabilitate a instanței mută rezultatul, și nimic din toate acestea nu prezice debitul VPN. Ceea ce prezice este când începe să se simtă constrângerea susținută.

Observă și a doua citire: un vCPU ocupat reprezintă aproximativ jumătate din capacitatea totală de CPU în acest exemplu. Un procentaj general moderat poate ascunde un nucleu saturat, așa că privește comportamentul pe nucleu alături de cifrele creditelor.

Standard și Unlimited: același zero, sens diferit

În modul Standard, un sold epuizat constrânge CPU-ul susținut spre linia de bază. Instanța continuă să lucreze, doar mai încet, iar plafonul este previzibil. În modul Unlimited, instanța poate continua să tragă din creditele excedentare după ce soldul ajunge la zero, iar utilizarea susținută peste linia de bază poate produce taxe conform regulilor contabile ale serviciului.

Deci un CPUCreditBalance de zero înseamnă limitare într-un mod și posibilă facturare în celălalt. Aceasta este toată comparația, și de aceea citirea metricii fără mod este înșelătoare.

Nici surplusul nu este o factură simplă pe credit. Operarea ulterioară sub linia de bază poate plăti surplusul, și se aplică alte condiții de taxare. Verifică modul configurat și regulile actuale ale serviciului în loc să te bazezi pe o afirmație despre nivelul gratuit dintr-un post de blog vechi.

Ce să urmărești în timpul muncii reale

Înregistrează CPUCreditUsage și CPUCreditBalance lângă durata și viteza transferului. Pe Unlimited, adaugă CPUSurplusCreditBalance și CPUSurplusCreditsCharged. Ghidul AWS de monitorizare a creditelor CPU explică ce raportează fiecare și cât de des.

Testează din nou cu o concurență reprezentativă și o durată suficientă pentru a vedea tendința, și înregistrează soldul inițial. O dimineață inactivă și o după-amiază aglomerată nu sunt același experiment, chiar și cu comenzi identice.

Limite care nu sunt CPU

Lățimea de bandă a rețelei are propria linie de bază și propriul comportament burst, iar limitele de rată a pachetelor sau de conexiuni pot strânge înaintea CPU-ului. Memoria contează când implementarea VPN ține stare pe conexiune, iar o instanță mică poate rămâne fără ea mult înainte de a rămâne fără credite.

Un sold de credite sănătos dovedește deci un lucru: bugetul CPU nu este constrângerea actuală. Nu spune nimic despre calea de rețea și nu spune nimic despre ce se întâmplă la dublul concurenței. Urmărește metricile de rețea în aceeași fereastră cu metricile de credite, ca o scădere a debitului să aibă o cauză probabilă, nu o teorie.

Alegerea unei linii de bază intenționat

Folosește sarcina susținută măsurată pentru a alege o linie de bază, sau acceptă explicit bursting-ul și bugetează pentru el. Ambele răspunsuri sunt defensabile când sunt scrise; niciunul nu este când este dedus din streamingul video reușit al altcuiva.

Dacă gateway-ul poartă sarcină, tratează modul de credite ca parte a planului de capacitate, nu ca o setare implicită pe care nu ai deschis-o niciodată. Modul pe care îl alegi este defecțiunea pe care o poți prevedea.

Articole similare