L = λ × W
Najbardziej użyteczna równanie w planowaniu zdolności
Dla każdej stabilnej kolejki, niezależnie od jej wewnętrznej struktury: L = λ × W, gdzie:
- L = średnia liczba elementów w systemie (w toku lub czekających)
- λ (lambda) = średnia szybkość przyjścia (elementów na jednostkę czasu)
- W = średni czas, który każdy element spędza w systemie
Czytelność geometryczna: nakreśl λ na jednej osi oraz W na drugiej. Produkt L to obszar prostokąta, który tworzą. Planowanie zdolności odbywa się wewnątrz tego prostokąta.
Dlaczego ma to znaczenie: dowolne dwa z tych trzech ilorazów pozwalają obliczyć trzeci. Miary przepustowości i opóźnienia wiesz, jakie są zajęcia. Miary zajętości i przepustowości wiesz, jakie są opóźnienia. Prawo jest odporną: zastosowuje się je do żądań sieci WWW, stolików restauracyjnych, kolejek supermarketowych i pętli CPU bez modyfikacji.
Trzy konkretne przykłady:
- Usługa sieciowa obsługuje 200 żądań/s z średnim opóźnieniem 50 ms (0,05 s). L = 200 × 0,05 = 10 w toku.
- Kawiarnia obsługuje 60 klientów/h z średnim czasem pobytu 15 minut (0,25 h). L = 60 × 0,25 = 15 klientów wewnętrznych.
- Pula tła obsługuje 1500 żądań/s z średnim opóźnieniem 200 ms (0,2 s). L = 1500 × 0,2 = 300 w toku.
Skutki dla rozmiaru: liczba pracowników / liczba wątków / liczba połączeń warstwy musi wynosić co najmniej L, aby utrzymać się na bieżąco. Cokolwiek mniej oznacza wzrost kolejki.
Dlaczego opóźnienie wybuchają po 80% wykorzystania
Najważniejsza krzywa w działaniach
Wykorzystanie planszy na osi x (0% do 100%) & średni czas oczekiwania na osi y. Kształt jest jednym z najważniejszych krzywych w planowaniu zdolności.
Model kolejki M/M/1: dla systemu z przychodzącymi Poisson (losowe) & czasami obsługi wykładnicze (losowe), średni czas oczekiwania:
W_q = ρ / (μ × (1 - ρ))
gdzie ρ to wykorzystanie (0 do 1) & μ to stawka usług.
Kształt krzywej:
- Na ρ = 0,5 (50% wykorz.), czas oczekiwania jest mały (1 czas usługi).
- Na ρ = 0,7 (70% wykorz.), czas oczekiwania to ~2,3 czasów usługi.
- Na ρ = 0,8 (80% wykorz.), czas oczekiwania to ~4 czasów usługi.
- Na ρ = 0,9 (90% wykorz.), czas oczekiwania to ~9 czasów usługi.
- Na ρ = 0,95 (95% wykorz.), czas oczekiwania to ~19 czasów usługi.
- Na ρ = 1,0 (100% wykorz.), czas oczekiwania jest nieskończony.
Kolano: około 80% wykorzystania, krzywa się gwałtownie zakrzywia. Poniżej kolana, zdolność jest komfortowa; powyżej, opóźnienie rośnie szybciej niż wykorzystanie.
Praktyczne czytanie: celować w 70% wykorzystania dla stanu steady-state, nigdy 100%. 30% 'przestrzeni' nie jest stracone; to jest cena za związane opóźnienia.
Rozmiarowanie Po Przekątnej Kolana
Dwa scenariusze:
Scenariusz A: 10 replik działających na 60% CPU. Latencja p99 = 100 ms.
Scenariusz B: ten sam zestaw uruchomieniowy działający na 90% CPU w wyniku wzrostu ruchu. p99 = 600 ms.
Ten sam zestaw uruchomieniowy, ten sama kod, tylko wykorzystanie się zmieniło.
Rozmiarowanie i Wyzwalanie Razem
Synteza
Teraz możesz zastosować prawo Little'a jako prostokąt, przeczytać krzywą kolejki i jej kolano, a następnie połączyć oba elementy z decyzjami dotyczącymi zdolności.
Zastosuj oba elementy.
Tier backend obsługuje 2000 żądań na sekundę z średnią opóźnieniem 50 ms na replikę o zdolności 80 żądań na sekundę przy 70% CPU. Współczynnik wzrostu 2x; chcesz przetrwać 3 jednoczesne awarie replik.
Notatki towarzyszące
Notatki towarzyszące
Tą geometrią-lesion przekształcamy nieskończenie skalowanie poziome bezstanowe główną lekcją na geometrię ilościową.
Następna towarzysząca lekcja, geometry_of_ingress_egress_separation, przekształca podział granicy sieciowej jako bipartite graf z wierzchołkiem cięcia, który usuwa podział.
Brawo!