English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

gäst
1 / ?

L = λ × W

Den mest användbara ekvationen inom kapacitetsplanering

För vilken stabil kö som helst, oavsett dess interna struktur: L = λ × W, där:

- L = genomsnittligt antal objekt i systemet (pågående eller väntande)

- λ (lambda) = genomsnittlig ankomsttakt (objekt per tidsenhet)

- W = genomsnittlig tid varje objekt tillbringar i systemet

Den geometriska tolkningen: rita λ på en axel och W på den andra. Produkten L är arean av rektangeln de bildar. Kapacitetsplanering sker inom denna rektangel.

Varför det är viktigt: vilka som helst två av de tre storheterna bestämmer den tredje. Mät du genomströmning och latens, känner du till upptaget. Mät du upptaget och genomströmningen, känner du till latensen. Lagen är robust: den gäller för webbfofrågan, restaurangbord, köer i supermarknader och CPU-pipelines utan modifikation.

Tre konkreta exempel:

- En webbtjänst hanterar 200 förfrågningar/s med en genomsnittlig latens på 50 ms (0,05 s). L = 200 × 0,05 = 10 på väg.

- En kaffeshop serverar 60 kunder/timme med en genomsnittlig vistestid på 15 minuter (0,25 h). L = 60 × 0,25 = 15 kunder inne.

- En backend-pool hanterar 1500 förfrågningar/s med en genomsnittlig latens på 200 ms (0,2 s). L = 1500 × 0,2 = 300 på väg.

Konsekvens för dimensionering: antalet arbetare / trådar / anslutningar i en nivå måste vara minst L för att hänga med. Mindre än så innebär köökning.

Little's Law as area: λ on x, W on y, L = area

Din API-nivå hanterar 1 200 req/s med en genomsnittlig latens på 80 ms. Tillämpa Littles lag för att beräkna L. Förklara sedan vad som förändras (a) om trafiken fördubblas till 2 400 req/s med oförändrad latens, och (b) om trafiken hålls på 1 200 req/s men latensen ökar till 160 ms. Vilken scenario ger ett större L, och vad betyder det operationellt?

Varför latens exploderar vid över 80 % utnyttjandegrad

Den viktigaste kurvan inom drift

Plotta utnyttjandegrad på x-axeln (0 % till 100 %) och genomsnittlig väntetid på y-axeln. Formen är en av de mest avgörande kurvorna inom kapacitetsplanering.

M/M/1-kömodellen: för ett system med Poisson-ankomster (slumpmässiga) och exponentiella servicetider (slumpmässiga) är den genomsnittliga väntetiden:

W_q = ρ / (μ × (1 - ρ))

där ρ är utnyttjandegraden (0 till 1) och μ är servicetakten.

Kurvans form:

- Vid ρ = 0,5 (50 % utnyttjandegrad) är väntetiden liten (en servicetid).

- Vid ρ = 0,7 (70 % utnyttjandegrad) är väntetiden cirka 2,3 servicetider.

- Vid ρ = 0,8 (80 % utnyttjandegrad) är väntetiden cirka 4 servicetider.

- Vid ρ = 0,9 (90 % utnyttjandegrad) är väntetiden cirka 9 servicetider.

- Vid ρ = 0,95 (95 % utnyttjandegrad) är väntetiden cirka 19 servicetider.

- Vid ρ = 1,0 (100 % utnyttjandegrad) är väntetiden oändlig.

Knäet: kring 80 % utnyttjandegrad böjer sig kurvan brant. Under knäet är kapaciteten bekväm; ovanför ökar latensen snabbare än utnyttjandegraden.

Praktisk tolkning: sikta på 70 % utnyttjandegrad för jämviktstillstånd, aldrig 100 %. De 30 % 'reserven' är inte slöseri; det är priset för begränsad latens.

Kökurva med knä vid 80 % utnyttjandegrad

Storleksbestämning vid knäet

Två scenarier:

Scenario A: 10 repliker som körs med 60 % CPU. Latens p99 = 100 ms.

Scenario B: samma flotta som körs med 90 % CPU på grund av trafikökning. p99 = 600 ms.

Samma flotta, samma kod, endast utnyttjandegraden har ändrats.

Förklara varför scenario B:s latens är 6 gånger sämre trots att utnyttjandegraden bara ökat med 1,5 gånger, med hjälp av kökurvans geometriska form. Föreslå sedan: vid vilken utnyttjandegrad bör teamet öka kapaciteten, och varför just den tröskeln i stället för att vänta på att SLO:n faktiskt kränks?

Storlek och utlösare tillsammans

Syntes

Du kan nu tillämpa Littles lag som en rektangel, läsa av kökurvan och dess knä samt koppla ihop båda med kapacitetsbeslut.

Tillämpa båda.

En backend-tjänst hanterar 2 000 req/s med en genomsnittlig latens på 50 ms per replika, med en kapacitet på 80 req/s vid 70 % CPU. Spikfaktorn är 2x; du vill klara av 3 simultana replikafel.

Beräkna: (1) L med hjälp av Littles lag vid basnivån; (2) antalet replikor med formeln från lektionen (topplast × spikfaktor / per replika) + marginal; (3) vid vilken observerad utnyttjandegrad över hela flottan bör autoskalning aktiveras, och motivera tröskelvärdet med hjälp av kökurvan.

Kompanionsanteckningar

Kompanionsanteckningar

Denna lektion om geometri omskrider huvudlektionen Stateless Horizontal Scaling som kvantitativ geometri.

Nästa kompanjon, geometry_of_ingress_egress_separation, omskrider nätverksgränsskilda som en bipartit graf med en skiljningspunkt som skilda eliminerar.

Bra jobbat.