L = λ × W: Ein Rechteck
Little's Law: Die nützlichste Gleichung der Kapazitätsplanung
John Little bewies 1961, dass für jede stabile Warteschlange, unabhängig von ihrer inneren Struktur: L = λ × W, wobei:
- L = durchschnittliche Anzahl der Elemente im System (Warteschlange + in Bearbeitung)
- λ (Lambda) = durchschnittliche Ankunftsrate von Elementen pro Zeiteinheit
- W = durchschnittliche Zeit, die jedes Element im System verbringt
Die geometrische Lesart: Zeichnen Sie die Ankunftsrate λ auf einer Achse & die Verweilzeit W auf der anderen. Das Produkt L ist die Fläche des Rechtecks, das sie bilden. Die Kapazitätsplanung lebt in diesem Rechteck.
Warum es wichtig ist: Zwei beliebige der drei Größen bestimmen die dritte. Wenn Sie Durchsatz & Latenz messen, kennen Sie die Auslastung. Wenn Sie Auslastung & Durchsatz messen, kennen Sie die Latenz. Das Gesetz ist robust: Es gilt für Web-Anfragen, Restaurant-Tische, Supermarkt-Schlangen & CPU-Pipelines ohne Änderung.
Drei konkrete Beispiele:
- Ein Web-Service bearbeitet 200 Anfragen/Sekunde mit durchschnittlicher Latenz von 50 ms (0,05 s). L = 200 × 0,05 = 10 Anfragen gleichzeitig im Flug.
- Ein Café bedient 60 Kunden/Stunde mit durchschnittlicher Verweilzeit von 15 Minuten (0,25 h). L = 60 × 0,25 = 15 Kunden durchschnittlich innen.
- Eine Produktionslinie produziert 100 Widgets/Stunde, wobei jedes Widget 2 Stunden von Anfang bis Ende dauert. L = 100 × 2 = 200 Widgets in Bearbeitung.
Bereitstellungsimplikation: Wenn Sie L (gleichzeitig im Flug befindliche Elemente) skalieren können, haben Sie das System skaliert. Die Anzahl der Worker-Threads, Datenbankverbindungen oder Warteschlangen-Slots ergeben sich alle aus L.
Skalierung eines Worker-Pools
Ihr Video-Transkodierungs-Service ist für eine durchschnittliche Ankunftsrate von 30 Transkodierungs-Jobs pro Minute ausgelegt, wobei jeder 90 Sekunden von Anfang bis Ende dauert. Der aktuelle Worker-Pool hat 30 Worker.
Warum die Latenz über 80% Auslastung explodiert
Die wichtigste Kurve der Kapazitätsplanung
Zeichnen Sie die Auslastung auf der x-Achse (0% bis 100%) & die durchschnittliche Latenz auf der y-Achse. Die Form, die sich ergibt, ist eine der folgenreichsten Kurven im Betrieb: Sie erklärt, warum Teams die Auslastung deutlich unter 100% anstreben, warum reservierter Puffer keine Verschwendung ist, & warum Systeme, die mit hoher Auslastung 'effizient' laufen, ohne Vorwarnung kollabieren.
Die M/M/1-Warteschlangen-Kurve: Für ein System mit Poisson-Ankünften (zufällig) & exponentiellen Service-Zeiten (zufällig) folgt die durchschnittliche Wartezeit:
W_q = ρ / (μ(1-ρ))
wobei ρ (rho) die Auslastung (0 bis 1) & μ die Service-Rate ist. Der Nenner (1-ρ) ist der Clou: Wenn ρ sich 1 nähert, nähert sich der Nenner 0, & die Wartezeit nähert sich unendlich.
Numerische Beispiele (Latenz-Multiplikator vs ρ für M/M/1):
- ρ = 0,5: Latenz-Verhältnis 1,0 (Baseline)
- ρ = 0,7: Latenz-Verhältnis ~2,3
- ρ = 0,8: Latenz-Verhältnis ~4,0
- ρ = 0,9: Latenz-Verhältnis ~9,0
- ρ = 0,95: Latenz-Verhältnis ~19,0
- ρ = 0,99: Latenz-Verhältnis ~99,0
Der Knick liegt um die 70-80% Auslastung. Unterhalb des Knicks erhöht sich die Latenz bei zusätzlicher Last langsam. Oberhalb des Knicks explodiert die Latenz nichtlinear. Das ist der Grund, warum die kanonische SRE-Regel lautet: Streben Sie eine Auslastung unter 80% an, laufen Sie niemals dauerhaft über 90%.
Warum traditionelle Betriebsteams dies unterschätzen: Ein Server mit 60% CPU 'sieht beschäftigt aus', hat aber komfortablen Latenz-Puffer. Ein Server mit 90% CPU 'sieht produktiv aus', ist aber einen Workload-Bump weg von Latenz-Katastrophe. Die geometrische Wahrheit: Die Steigung der Kurve ist die eigentliche Bedrohung, nicht ihr aktueller y-Wert.
Die Kurve lesen
Ein Team betreibt einen Service bei 85% CPU-Auslastung im stabilen Zustand. Die aktuelle p99-Latenz beträgt 200 ms. Sie erwägen, 30% mehr Traffic hinzuzufügen, um Workload von einem anderen Service zu konsolidieren, der eingestellt wird.
Steigung, Achsenabschnitt & der Prognose-Kegel
Wachstum aus einer Steigung ablesen
Die Nachfrageprognose reduziert sich in vielen Fällen auf das Zeichnen der richtigen Linie durch historische Daten. Die geometrischen Eigenschaften dieser Linie: Steigung, Achsenabschnitt & Unsicherheits-Kegel kodieren die gesamte Prognose.
Linearer Trend (y = mx + b): Geeignet für kurze Fenster oder tatsächlich lineare Prozesse. Die Steigung m ist die Wachstumsrate pro Zeiteinheit. Der Achsenabschnitt b ist der Startwert. Nützlich, wenn das Wachstum gleichmäßig ist. Neigt dazu, unterschätzt zu werden, wenn der Prozess tatsächlich zusammengesetzt ist.
Exponentieller Trend (y = b × e^(mx)): Geeignet für zusammengesetztes Wachstum: Virale Akzeptanz, Netzwerk-Effekte der Benutzer, multiplikative Saisonalität. Auf einer logarithmischen y-Achse wird exponentielles Wachstum linear, was die Schätzung der Steigung einfacher macht. Die Steigung m auf logarithmischer Skala ist die Wachstumsrate pro Zeiteinheit.
Stückweise linear: Geeignet, wenn das Wachstum unterschiedliche Regime hat. Ein Startup könnte 18 Monate lang langsam wachsen, dann eine virale Wendepunkt haben, die 6 Monate explosives Wachstum produziert, dann ein Plateau erreichen. Drei lineare Segmente passen besser als jede einzelne Kurve.
Prognose-Kegel: Die zentrale Schätzung plus obere & untere Grenzen, gezeichnet als sich verbreiternder Kegel in die Zukunft. Die Breite des Kegels wächst mit der Zeit, da sich die Unsicherheit verschärft. Eine 4-Wochen-Prognose könnte ±10% Grenzen haben; eine 12-Monats-Prognose hat oft ±50% oder mehr.
Saisonalitäts-Zerlegung: Die tatsächliche Nachfrage kombiniert Trend + saisonaler Zyklus + Rauschen. Statistische Bibliotheken (statsmodels, Prophet) zerlegen eine Serie in diese drei Komponenten, wodurch der Trend unabhängig vom saisonalen Muster projiziert werden kann. Geometrisch ist der Trend die zugrunde liegende Drift, die Saisonalität ist die periodische Welle oben drauf, & das Rauschen ist das restliche Zittern.
Wahl eines Trend-Modells
Sie haben 24 Monate monatliche Request-Volumen. Monate 1-12 wuchsen von 1M auf 2M (linear aussehend, +83K/Monat). Monate 13-18 wuchsen von 2M auf 4M (steiler, +330K/Monat). Monate 19-24 wuchsen von 4M auf 12M (viel steiler). Das Marketing bestätigt, dass ein virales Produkt-Feature in Monat 13 startete & die Wendepunkt antrieb.
Kapazität vs Nachfrage als 2D-Geometrie
Das Diagramm, in dem jedes Kapazitäts-Team lebt
Zeichnen Sie die Zeit auf der x-Achse. Zeichnen Sie Nachfrage & Kapazität auf der y-Achse als zwei separate Linien. Die vertikale Lücke zwischen ihnen zu jedem Zeitpunkt ist der Puffer. Die 2D-Fläche zwischen den Kurven ist die Puffer-Hülle.
Drei Referenz-Formen:
- Gesunde Hülle: Kapazitäts-Linie bleibt komfortabel über der Nachfrage-Linie. Die Lücke kann sich während Spitzen verengen, aber verschwindet nie. Die Hülle ist ein Sicherheits-Band.
- Schließende Hülle: Kapazität wächst langsamer als Nachfrage. Die Lücke verengt sich im Laufe der Zeit. Der Schnittpunkt-Punkt in der Zukunft ist, wenn das System den Puffer aufbraucht: Das Datum, bis zu dem das Team Kapazität hinzufügen muss.
- Invertierte Hülle: Nachfrage überschreitet Kapazität. Das System ist in Incident-Gebiet. Die vertikale Größe der Inversion ist das Defizit, das irgendwie bedient werden muss (Warteschlangen-Überfluss, Fehlerquoten, Kundenauswirkungen).
Das Standard-Kapazitäts-Planungsdiagramm zeichnet:
- Letzte Nachfrage-Historie (durchgehende blaue Linie)
- Prognostizierte Nachfrage mit Grenzen (gestrichelte Linie + schattierter Kegel)
- Aktuelle Kapazität (durchgehende grüne Linie)
- Geplante Kapazitäts-Erweiterungen mit Lieferterminen (Step-Funktion)
- Das Schnittpunkt-Datum, wo die prognostizierte Nachfrage die aktuelle Kapazität kreuzt: Dies ist die Frist für die nächste Bereitstellung
Die visuelle Entscheidungsregel: Halten Sie die Kapazitäts-Step-Funktion über der oberen Grenze des Prognose-Kegels zu allen Zeiten. Stellen Sie nicht auf die zentrale Schätzung bereit; stellen Sie auf die obere Grenze bereit. Die Kosten der Über-Bereitstellung sind endlich (einige untätige Kapazität); die Kosten der Unter-Bereitstellung sind unbegrenzt (verlorene Benutzer, Kaskadenausfälle, Reputationsschaden).
Die Hülle lesen
Ihr Kapazitäts-Diagramm zeigt: Die aktuelle Nachfrage beträgt 1.500 RPS & wächst um 20% pro Monat. Die aktuelle Kapazität beträgt 2.500 RPS. Ein neuer Server-Batch (+1.500 RPS Kapazität) kommt in 8 Wochen an. Der Prognose-Kegel hat ±15% Grenzen am 8-Wochen-Horizont.
Geometrie der Kapazität: Zusammenfassung
Formen, die die Zukunft vorhersagen
Sie haben vier geometrische Strukturen durchgegangen, die unter der Kapazitätsplanung laufen:
- Little's Law (L = λ × W) als die Fläche eines Rechtecks, das die Auslastung im stabilen Zustand definiert
- Die Warteschlangen-Kurve mit ihrem Knick bei 80% Auslastung, der die nichtlineare Kosten des heißen Laufens kodiert
- Trend-Steigungen & Prognose-Kegel, die historische Daten in umsetzbaren Prognosen umwandeln
- Puffer-Hüllen als 2D-Diagramme der Kapazität gegenüber Nachfrage, wobei Schnittpunkt-Daten die Bereitstellungs-Fristen markieren
Die Kapazitätsplanung ist in ihrem visuellen Kern die Disziplin, eine Kurve sicher über eine andere für die Zeit zu halten. Die Zahlen sind Dressing; die Formen tragen die Wahrheit. Ein Kapazitäts-Ingenieur, der die Warteschlangen-Kurve korrekt liest, wird Probleme fangen, die ein CPU-Dashboard verbirgt, bis das System bereits brennt.
Die Begleit-Lektion über Kapazitätsplanung behandelte die Praktiken: Messung, Prognose, Deckel-Tests, Puffer & Skalierung. Diese Lektion behandelte die Geometrie darunter. Zusammen bilden sie die visuelle & analytische Gerüst des Betriebs von Services, die ohne Überraschung skalieren.