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

La equazione più utile nel pianificamento della capacità

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

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

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

- W = tempo medio trascorso da ciascun elemento nel sistema

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

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

Tre esempi concreti:

- Un servizio web gestisce 200 richieste al secondo con latenza media di 50 ms (0,05 s). L = 200 × 0,05 = 10 in corso di elaborazione.

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

- Una pool backend gestisce 1500 richieste al secondo con latenza media di 200 ms (0,2 s). L = 1500 × 0,2 = 300 in corso di elaborazione.

Implicazione di dimensionamento: il numero di worker / thread / connessioni di un livello deve essere almeno L per mantenere il ritmo. Qualcosa di meno significa crescita della coda.

La legge di Little come area: λ su x, W su y, L = area

Il tuo livello di API gestisce 1.200 richieste al secondo con latenza media di 80 ms. Applica la legge di Little per calcolare L. Spiega poi cosa cambia (a) se il traffico raddoppia a 2.400 richieste al secondo con latenza invariata, e (b) se il traffico resta a 1.200 ma la latenza aumenta a 160 ms. Quali scenario produce un L più grande e cosa significa operativamente?

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

La curva più importante nelle operazioni

Rappresentazione dell'utilizzo del plot sulle ascisse (0% a 100%) & del tempo medio di attesa sulle ordinate. La forma è una delle curve più importanti nella pianificazione delle capacità.

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

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

dove ρ è l'utilizzo (0 a 1) & μ è 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 è ~2.3 tempi di servizio.

- A ρ = 0.8 (80% di utilizzo), il tempo di attesa è ~4 tempi di servizio.

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

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

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

La ginocchia: intorno all'80% di utilizzo, la curva piega bruscamente. Sotto la ginocchia, la capacità è confortevole; sopra, la latenza aumenta più velocemente dell'utilizzo.

Lettura pratica: mira a un utilizzo del 70% per lo stato di equilibrio; non il 100%. Il 30% di 'spazio libero' non è spreco; è il prezzo della latenza limitata.

Curva di coda con ginocchia all'80% di utilizzo

Dimensionamento oltre la Ginocchia

Due scenari:

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

Scenario B: stesso fleet in esecuzione al 90% di CPU a causa della crescita del traffico. p99 = 600 ms.

Stesso fleet, stesso codice, cambiato solo l'utilizzo.

Spiega perché il tempo di latenza del scenario B è 6 volte peggiore nonostante un aumento del 1.5 volte dell'utilizzo, utilizzando la forma geometrica della curva di coda. Propone poi: a quale livello di utilizzo dovrebbe l'equipe aggiungere capacità e perché quel livello invece di aspettare la violazione effettiva degli SLO?

Dimensionamento e Triggers insieme

Synthesis

Puoi ora applicare la legge di Little come un rettangolo, leggere la curva della coda e la sua ginocchia, e connettere entrambi alle decisioni di capacità.

Applica entrambi.

Un livello back-end gestisce 2.000 richieste al secondo con latenza media di 50 ms per capacità replica 80 richieste al secondo al 70% del CPU. Fattore di sopravvivenza 2x; vuoi sopravvivere a 3 fallimenti simultanei dei replicanti.

Calcola: (1) L utilizzando la legge di Little nello stato di equilibrio; (2) il numero di repliche utilizzando la formula del lezione (picco × surriscaldamento / per-replica) + spazio libero; (3) a quale utilizzo osservato su tutto il fleet dovrebbe essere attivato l'auto-scaling e giustifica il livello di soglia utilizzando la curva di coda.

Note di accompagnamento

Note di accompagnamento

Questa lezione sulla geometria ridisegna la lezione principale Scaling orizzontale senza stato come geometria quantitativa.

La prossima compagna, geometry_of_ingress_egress_separation, ridisegna lo spartimento del confine di rete come un grafo bipartito con un vertice di taglio che rimuove lo spartimento.

Ben fatto.