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

un

ospite
1 / ?
torna alle lezioni

L = λ × W

L'equazione più utile nella pianificazione della capacità

Per qualsiasi coda stabile, indipendentemente dalla sua struttura interna: L = λ × W, dove:

- L = numero medio di elementi nel sistema (in lavorazione o in attesa)

- λ (lambda) = tasso medio di arrivo (elementi per unità di tempo)

- W = tempo medio che ogni elemento trascorre nel sistema

La lettura geometrica: tracciare λ su un asse e W sull'altro. Il prodotto L è l'area del rettangolo che formano. La pianificazione della capacità si trova all'interno di questo rettangolo.

Perché è importante: qualsiasi due delle tre quantità determinano la terza. Misurando il throughput e la latenza, si conosce l'occupazione. Misurando l'occupazione e il throughput, si conosce la latenza. La legge è robusta: si applica a richieste web, tavoli di ristoranti, code di supermercati e pipeline CPU senza modifiche.

Tre esempi concreti:

- Un servizio web gestisce 200 req/s con una latenza media di 50 ms (0,05 s). L = 200 × 0,05 = 10 richieste in volo.

- Un caffè serve 60 clienti/ora con un tempo medio di permanenza di 15 minuti (0,25 h). L = 60 × 0,25 = 15 clienti all'interno.

- Un pool di backend gestisce 1500 req/s con una latenza media di 200 ms (0,2 s). L = 1500 × 0,2 = 300 richieste in volo.

Implicazione per le dimensioni: il numero di worker / thread / connessioni di un livello deve essere almeno pari a L per tenere il passo. Qualsiasi valore inferiore comporta la crescita della coda.

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

Il tuo livello API gestisce 1.200 req/s con una latenza media di 80 ms. Applica la Legge di Little per calcolare L. Poi spiega cosa cambia (a) se il traffico raddoppia a 2.400 req/s con la latenza invariata, e (b) se il traffico resta a 1.200 ma la latenza sale a 160 ms. Quale scenario produce un L maggiore e cosa significa operativamente?

Perché la latenza esplode oltre l'80% di utilizzo

La curva più importante nelle operazioni

Traccia l'utilizzo sull'asse x (dal 0% al 100%) e il tempo di attesa medio sull'asse y. La forma è una delle curve più significative nella pianificazione della capacità.

Il modello di code M/M/1: per un sistema con arrivi di Poisson (casuali) e tempi di servizio esponenziali (casuali), il tempo di attesa medio è:

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

dove ρ è l'utilizzo (da 0 a 1) e μ è il tasso di servizio.

La forma della curva:

- A ρ = 0,5 (50% di utilizzo), il tempo di attesa è piccolo (1 tempo di servizio).

- A ρ = 0,7 (70% di utilizzo), il tempo di attesa è di circa 2,3 tempi di servizio.

- A ρ = 0,8 (80% di utilizzo), il tempo di attesa è di circa 4 tempi di servizio.

- A ρ = 0,9 (90% di utilizzo), il tempo di attesa è di circa 9 tempi di servizio.

- A ρ = 0,95 (95% di utilizzo), il tempo di attesa è di circa 19 tempi di servizio.

- A ρ = 1,0 (100% di utilizzo), il tempo di attesa è infinito.

Il punto di ginocchio: intorno all'80% di utilizzo, la curva piega bruscamente. Sotto il punto di ginocchio, la capacità è confortevole; sopra, la latenza cresce più rapidamente dell'utilizzo.

Lettura pratica: puntare a un utilizzo del 70% per lo stato stazionario, mai al 100%. Il 30% di "margine" non è uno spreco; è il prezzo da pagare per una latenza limitata.

Curva di code con punto di ginocchio all'80% di utilizzo

Dimensionamento oltre il punto di ginocchia

Due scenari:

Scenario A: 10 repliche che operano al 60% di CPU. Latenza p99 = 100 ms.

Scenario B: stessa flotta che opera al 90% di CPU a causa della crescita del traffico. p99 = 600 ms.

Stessa flotta, stesso codice, è cambiata solo l'utilizzazione.

Spiega perché la latenza dello scenario B è 6 volte peggiore nonostante un aumento dell'utilizzazione di soli 1,5 volte, utilizzando la forma geometrica della curva di code. Quindi proponi: a quale livello di utilizzazione il team dovrebbe aggiungere capacità e perché quella soglia invece di aspettare la violazione effettiva degli SLO?

Dimensionamento e Trigger insieme

Sintesi

Ora puoi applicare la Legge di Little come un rettangolo, leggere la curva di code e il suo punto di ginocchio, e collegare entrambi alle decisioni sulla capacità.

Applica entrambi.

Un livello backend gestisce 2.000 req/s con una latenza media di 50 ms per replica, con una capacità di 80 req/s al 70% di CPU. Fattore di picco 2x; si desidera sopravvivere a 3 guasti simultanei di replica.

Calcola: (1) L usando la Legge di Little alla base; (2) il numero di repliche usando la formula della lezione (picco × fattore di picco / per replica) + margine di sicurezza; (3) a quale utilizzo osservato in tutta la flotta dovrebbe attivarsi l'auto-scaling, e giustifica la soglia usando la curva di code.

Note Compagne

Note Compagne

Questa lezione di geometria ricalca la lezione principale Scalabilità Orizzontale Senza Stato come geometria quantitativa.

Il prossimo compagno, geometry_of_ingress_egress_separation, ricalca la separazione del confine di rete come grafo bipartito con un vertice di taglio che la separazione rimuove.

Ben fatto.