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

un

Gast
1 / ?

L = λ × W

Die nützlichste Gleichung in der Kapazitätsplanung

Für jede stabile Warteschlange, unabhängig von ihrer internen Struktur: L = λ × W, wobei:

- L = durchschnittliche Anzahl der Elemente im System (in Bearbeitung oder wartend)

- λ (Lambda) = durchschnittliche Ankunftsrate (Elemente pro Zeiteinheit)

- W = durchschnittliche Zeit, die ein Element im System verbringt

Die geometrische Interpretation: Trage λ auf einer Achse und W auf der anderen auf. Das Produkt L ist die Fläche des Rechtecks, das sie bilden. Kapazitätsplanung findet innerhalb dieses Rechtecks statt.

Warum es wichtig ist: Jedes beliebige Paar der drei Größen bestimmt die dritte. Misst man Durchsatz und Latenz, kennt man die Belegung. Misst man Belegung und Durchsatz, kennt man die Latenz. Das Gesetz ist robust: Es gilt für Web-Anfragen, Restauranttische, Supermarktschlangen und CPU-Pipelines ohne Modifikation.

Drei konkrete Beispiele:

- Ein Webdienst verarbeitet 200 Anfragen/s mit einer durchschnittlichen Latenz von 50 ms (0,05 s). L = 200 × 0,05 = 10 Anfragen in Bearbeitung.

- Ein Kaffeehaus bedient 60 Kunden/Stunde mit einer durchschnittlichen Verweildauer von 15 Minuten (0,25 h). L = 60 × 0,25 = 15 Kunden im Haus.

- Ein Backend-Pool verarbeitet 1500 Anfragen/s mit einer durchschnittlichen Latenz von 200 ms (0,2 s). L = 1500 × 0,2 = 300 Anfragen in Bearbeitung.

Auswirkung auf die Dimensionierung: Die Anzahl der Worker / Threads / Verbindungen einer Ebene muss mindestens L betragen, um Schritt zu halten. Alles Weniger führt zu einem Wachstum der Warteschlange.

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

Deine API-Ebene verarbeitet 1.200 Anfragen/s mit einer durchschnittlichen Latenz von 80 ms. Wende das Gesetz von Little an, um L zu berechnen. Erkläre anschließend, was sich ändert, (a) wenn der Verkehr auf 2.400 Anfragen/s verdoppelt wird und die Latenz unverändert bleibt, und (b) wenn der Verkehr bei 1.200 Anfragen/s bleibt, aber die Latenz auf 160 ms steigt. Welches Szenario ergibt ein größeres L, und was bedeutet das betrieblich?

Warum die Latenzzeit bei einer Auslastung über 80 % explodiert

Die wichtigste Kurve im Betrieb

Tragen Sie die Auslastung auf der x-Achse (0 % bis 100 %) und die durchschnittliche Wartezeit auf der y-Achse auf. Die Form ist eine der folgenreichsten Kurven in der Kapazitätsplanung.

Das M/M/1-Warteschlangenmodell: Für ein System mit Poisson-Ankünften (zufällig) und exponentiellen Bedienzeiten (zufällig) gilt für die durchschnittliche Wartezeit:

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

wobei ρ die Auslastung (0 bis 1) und μ die Bedienrate ist.

Die Form der Kurve:

- Bei ρ = 0,5 (50 % Auslastung) ist die Wartezeit gering (1 Bedieneinheit).

- Bei ρ = 0,7 (70 % Auslastung) beträgt die Wartezeit ca. 2,3 Bedienzeiten.

- Bei ρ = 0,8 (80 % Auslastung) beträgt die Wartezeit ca. 4 Bedienzeiten.

- Bei ρ = 0,9 (90 % Auslastung) beträgt die Wartezeit ca. 9 Bedienzeiten.

- Bei ρ = 0,95 (95 % Auslastung) beträgt die Wartezeit ca. 19 Bedienzeiten.

- Bei ρ = 1,0 (100 % Auslastung) ist die Wartezeit unendlich.

Der Knickpunkt: Bei etwa 80 % Auslastung knickt die Kurve scharf ab. Unterhalb des Knickpunkts ist die Kapazität komfortabel; oberhalb steigt die Latenz schneller an als die Auslastung.

Praktische Einordnung: Ziel ist eine Auslastung von 70 % im stationären Zustand, niemals 100 %. Die 30 % „Reserve“ sind keine Verschwendung, sondern der Preis für eine begrenzte Latenz.

Warteschlangenkurve mit Knickpunkt bei 80 % Auslastung

Größenbestimmung über das „Knie“ hinweg

Zwei Szenarien:

Szenario A: 10 Replikate mit 60 % CPU-Auslastung. Latenz p99 = 100 ms.

Szenario B: derselbe Fuhrpark mit 90 % CPU-Auslastung aufgrund des Traffic-Wachstums. p99 = 600 ms.

Derselbe Fuhrpark, derselbe Code, nur die Auslastung hat sich geändert.

Erkläre, warum die Latenz in Szenario B 6-mal schlechter ist, obwohl die Auslastung nur um den Faktor 1,5 gestiegen ist, unter Verwendung der geometrischen Form der Warteschlangenkurve. Vorschlag: Bei welcher Auslastung sollte das Team Kapazität hinzufügen, und warum genau diese Schwelle, anstatt auf eine tatsächliche SLO-Verletzung zu warten?

Größe & Auslöser kombinieren

Synthese

Sie können nun das Little's Law als Rechteck anwenden, die Warteschlangenkurve und ihren Kniepunkt lesen und beides mit Kapazitätsentscheidungen verknüpfen.

Beides anwenden.

Eine Backend-Ebene verarbeitet 2.000 req/s mit einer durchschnittlichen Latenz von 50 ms pro Replik. Die Kapazität pro Replik beträgt 80 req/s bei 70 % CPU-Auslastung. Der Surge-Faktor beträgt 2x; du sollst 3 gleichzeitige Replik-Ausfälle überstehen.

Berechne: (1) L mit dem Little's Law auf Baseline-Niveau; (2) die Anzahl der Repliken mit der Formel aus der Lektion (Peak × Surge / pro Replik) + Puffer; (3) bei welcher beobachteten Auslastung im gesamten Fleet das Autoscaling ausgelöst werden sollte, und rechtfertige die Schwelle anhand der Warteschlangenkurve.

Begleitende Notizen

Begleitende Notizen

Diese Lektion zur Geometrie formuliert die Hauptlektion Stateless Horizontal Scaling als quantitative Geometrie neu.

Die nächste Begleitlektion, geometry_of_ingress_egress_separation, formuliert die Trennung der Netzwerkgrenze als einen bipartiten Graphen mit einem Schnittknoten, den die Trennung eliminiert, neu.

Gut gemacht.