L = λ × W: Prostokąt
Prawo Little'a: Najbardziej przydatne równanie w planowaniu pojemności
John Little udowodnił w 1961 roku, że dla każdej stabilnej kolejki, niezależnie od jej wewnętrznej struktury: L = λ × W, gdzie:
- L = średnia liczba elementów w systemie (kolejka + w obsłudze)
- λ (lambda) = średnia szybkość przyjazdu elementów na jednostkę czasu
- W = średni czas, jaki każdy element spędza w systemie
Czytanie geometryczne: wykreśl szybkość przyjazdu λ na jednej osi & czas pobytu W na drugiej. Iloczyn L jest obszarem prostokąta, który tworzą. Planowanie pojemności żyje wewnątrz tego prostokąta.
Dlaczego to ważne: dowolne dwie z trzech wielkości określają trzecią. Jeśli zmierzysz przepustowość & opóźnienie, znasz zajętość. Jeśli zmierzysz zajętość & przepustowość, znasz opóźnienie. Prawo jest solidne: stosuje się do żądań internetowych, stolików w restauracjach, kolejek w supermarkecie & potoków CPU bez modyfikacji.
Trzy konkretne przykłady:
- Usługa internetowa obsługuje 200 żądań/sekundę ze średnim opóźnieniem 50 ms (0,05 s). L = 200 × 0,05 = 10 żądań w locie w dowolnym momencie.
- Kawiarnia serwuje 60 klientów/godzinę ze średnim czasem pobytu 15 minut (0,25 h). L = 60 × 0,25 = 15 klientów w środku średnio.
- Linia produkcyjna produkuje 100 widżetów/godzinę, każdy widżet zajmuje 2 godziny od końca do końca. L = 100 × 2 = 200 widżetów w procesie.
Implikacja dla zasobów: jeśli potrafisz zmienić rozmiar dla L (jednocześnie w locie), zmieniłeś rozmiar dla systemu. Liczba wątków roboczy, połączeń bazy danych lub slotów kolejki wszystkie pochodzą z L.
Zmiana rozmiaru puli pracowników
Twoja usługa transkodowania wideo jest zmieniana dla średniej szybkości przyjazdu 30 zadań transkodowania na minutę, każde zajmujące 90 sekund od końca do końca. Obecna pula pracowników ma 30 pracowników.
Dlaczego opóźnienie eksploduje powyżej 80% wykorzystania
Najważniejsza krzywa w planowaniu pojemności
Wykreśl wykorzystanie na osi x (0% do 100%) & średnie opóźnienie na osi y. Kształt, który się pojawia, to jedna z najistotniejszych krzywych w operacjach: wyjaśnia, dlaczego zespoły kierują się wykorzystaniem znacznie poniżej 100%, dlaczego rezerwowany margines nie jest marnotrawstwem, & dlaczego systemy działające 'efektywnie' przy wysokim wykorzystaniu upadają bez ostrzeżenia.
Krzywa kolejkowania M/M/1: dla systemu z przyjazdami Poissona (losowe) & czasami obsługi wykładniczymi (losowe), średni czas oczekiwania następuje:
W_q = ρ / (μ(1-ρ))
gdzie ρ (rho) to wykorzystanie (0 do 1) & μ to szybkość obsługi. Mianownik (1-ρ) to punkt: gdy ρ zbliża się do 1, mianownik zbliża się do 0, & czas oczekiwania zbliża się do nieskończoności.
Przykłady numeryczne (mnożnik opóźnienia vs ρ dla M/M/1):
- ρ = 0,5: stosunek opóźnienia 1,0 (linia bazowa)
- ρ = 0,7: stosunek opóźnienia ~2,3
- ρ = 0,8: stosunek opóźnienia ~4,0
- ρ = 0,9: stosunek opóźnienia ~9,0
- ρ = 0,95: stosunek opóźnienia ~19,0
- ρ = 0,99: stosunek opóźnienia ~99,0
Łokieć znajduje się wokół 70-80% wykorzystania. Poniżej łokcia, dodanie obciążenia powoli zwiększa opóźnienie. Powyżej łokcia, opóźnienie eksploduje nieliniowo. To dlatego kanoniczna zasada SRE to: kieruj się na stały stan wykorzystania poniżej 80%, nigdy nie uruchamiaj dłużej powyżej 90%.
Dlaczego tradycyjne zespoły ops niedoceniają to: serwer na 60% CPU 'wygląda zajęty' ale ma wygodny margines bezpieczeństwa opóźnienia. Serwer na 90% CPU 'wygląda produktywnie' ale jest jednym wzrostem obciążenia od katastrofy opóźnienia. Geometryczna prawda: nachylenie krzywej jest rzeczywistym zagrożeniem, nie jej obecna wartość y.
Czytanie krzywej
Zespół uruchamia usługę na 85% wykorzystania CPU steady state. Bieżące opóźnienie p99 to 200 ms. Rozważają dodanie 30% więcej ruchu do skonsolidowania obciążenia z innej usługi, która jest wycofywana.
Nachylenie, punkt przecięcia & stożek prognozy
Czytanie wzrostu ze znachylenia
Prognozowanie popytu zmienia się (w wielu przypadkach) do rysowania właściwej linii przez dane historyczne. Właściwości geometryczne tej linii: nachylenie, punkt przecięcia & stożek niepewności kodują całą prognozę.
Trend liniowy (y = mx + b): odpowiedni dla krótkich okien lub naprawdę liniowych procesów. Nachylenie m to szybkość wzrostu na jednostkę czasu. Punkt przecięcia b to wartość początkowa. Przydatne, gdy wzrost jest stały. Zmienia się na niedoszacowanie, gdy proces faktycznie się złożony.
Trend wykładniczy (y = b × e^(mx)): odpowiedni dla wzrostu złożonego: adopcja wirusowa, efekty sieci użytkownika, multiplikatywna sezonowość. Na skali logarytmicznej osi y, wzrost wykładniczy staje się liniowy, co ułatwia oszacowanie nachylenia. Nachylenie m na skali logarytmicznej to szybkość wzrostu na jednostkę czasu.
Piecewise linear: odpowiedni, gdy wzrost ma odrębne tryby. Startup może rosnąć powoli przez 18 miesięcy, a następnie mieć wirusowy punkt przegięcia, który produkuje 6 miesięcy eksplozyjnego wzrostu, a następnie plateau. Trzy segmenty liniowe pasują lepiej do każdej pojedynczej krzywej.
Stożek prognozy: centralna ocena plus górne & dolne granice, narysowane jako rozszerzający się stożek w przyszłość. Szerokość stożka rośnie z czasem, ponieważ niepewność się skraca. Czterotygodniowa prognoza może mieć granice ±10%; roczna prognoza często ma ±50% lub więcej.
Rozkład sezonowości: rzeczywisty popyt łączy trend + cykl sezonowy + szum. Biblioteki statystyczne (statsmodels, Prophet) rozkładają serię na te trzy składniki, umożliwiając oddzielną projekcję trendu od wzoru sezonowego. Geometrycznie, trend to źródłowy dryf, sezonowość to okresowe zmarszczenie na górze, & szum to resztkowa trzepotanie.
Wybór modelu trendu
Masz 24 miesiące miesięcznych wolumenów żądań. Miesiące 1-12 rosły z 1M do 2M (liniowo wyglądające, +83K/miesiąc). Miesiące 13-18 rosły z 2M do 4M (bardziej strome, +330K/miesiąc). Miesiące 19-24 rosły z 4M do 12M (znacznie bardziej strome). Marketing potwierdza, że wirusowa funkcja produktu uruchomiona w miesiącu 13 napędza punkt przegięcia.
Pojemność vs popyt jako geometria 2D
Wykres, wewnątrz którego każdy zespół pojemności żyje
Wykreśl czas na osi x. Wykreśl popyt & pojemność na osi y jako dwie odrębne linie. Pionowa luka między nimi w dowolnym punkcie w czasie to margines bezpieczeństwa. Obszar 2D między krzywymi to obwiednia marginesu bezpieczeństwa.
Trzy kształty referencyjne:
- Zdrow obwiednia: linia pojemności pozostaje wygodnie powyżej linii popytu. Luka może się zwęzić podczas szczytów, ale nigdy nie znika. Obwiednia to zespół bezpieczeństwa.
- Zamykająca się obwiednia: pojemność rośnie wolniej niż popyt. Luka zwęża się w czasie. Punkt przecięcia w przyszłości to moment, w którym system brakuje marginesu bezpieczeństwa: data, do której zespół musi dodać pojemność.
- Odwrócona obwiednia: popyt przekracza pojemność. System jest na terytorium incydentów. Pionowa wielkość inwersji to deficyt, który musi być obsługiwany w inny sposób (przepełnienie kolejki, wskaźniki błędów, wpływ klienta).
Standardowy wykres planowania pojemności wykreśla:
- Ostatnia historia popytu (solidna niebieska linia)
- Popyt prognozy z granicami (linia przerywana + stożek zacieniony)
- Obecna pojemność (solidna zielona linia)
- Planowane dodatki pojemności z datami dostawy (funkcja schodkowa)
- Data przecięcia, gdzie prognoza popytu przekracza obecną pojemność: to deadline dla następnego zasobów
Reguła decyzji wizualnej: utrzymaj funkcję kroku pojemności powyżej górnej granicy stożka prognozy o wszystkich czasach. Nie zasoby do centralną ocenę; zasoby do górną granicę. Koszt nadmiernego zasobów jest skończony (pewna pojemność bezczynności); koszt pod-zasobów jest nieograniczony (straceni użytkownicy, awaria kaskadowa, uszkodzenie reputacji).
Czytanie obwiedni
Twój wykres pojemności pokazuje: bieżący popyt to 1500 RPS rosnący 20% miesięcznie. Obecna pojemność to 2500 RPS. Nowa partia serwerów (+1500 RPS pojemności) przybywa w 8 tygodni. Stożek prognozy ma granice ±15% w horyzoncie 8 tygodni.
Geometria pojemności: Podsumowanie
Kształty, które przewidują przyszłość
Przeszedłeś cztery struktury geometryczne, które działają poniżej planowania pojemności:
- Prawo Little'a (L = λ × W) jako powierzchnia prostokąta definiującego zajętość steady-state
- Krzywa kolejkowania z jej łokciem na 80% wykorzystania, kodując nieliniowy koszt uruchamiania gorąco
- Nachylenia trendów & stożki prognozy, które zamieniają dane historyczne w działające projekcje
- Obwiednie marginesu jako wykresy 2D pojemności w stosunku do popytu, z datami przecięcia oznaczające deadline zasobów
Planowanie pojemności jest, w jego wizualnym rdzeniu, dyscypliną utrzymywania jednej krzywej bezpiecznie powyżej drugiej w czasie. Liczby to przebranie; kształty noszą prawdę. Inżynier pojemności, który poprawnie czyta krzywą kolejkowania, złapie problemy, które pulpit CPU ukrywa, aż system już się pali.
Lekcja towarzysząca na temat planowania pojemności obejmowała praktyki: pomiary, prognozowanie, testy pułapu, margines bezpieczeństwa & skalowanie. Ta lekcja obejmowała geometrię poniżej nich. Razem tworzą scaffolding wizualny & analityczny do uruchamiania usług, które skalują się bez niespodzianki.