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

un

gość
1 / ?
powrót do lekcji

L = λ × W

Najbardziej użyteczne równanie w planowaniu pojemności

Dla dowolnej stabilnej kolejki, niezależnie od jej wewnętrznej struktury: L = λ × W, gdzie:

- L = średnia liczba elementów w systemie (w trakcie przetwarzania lub oczekujących)

- λ (lambda) = średnia intensywność przychodzenia (liczba elementów na jednostkę czasu)

- W = średni czas, jaki każdy element spędza w systemie

Geometria interpretacji: narysuj λ na jednej osi, a W na drugiej. Iloczyn L to pole prostokąta, który tworzą. Planowanie pojemności mieści się wewnątrz tego prostokąta.

Dlaczego to ma znaczenie: dowolne dwie z trzech wielkości determinują trzecią. Mierz przepustowość i opóźnienie, a poznasz obsadzenie. Mierz obsadzenie i przepustowość, a poznasz opóźnienie. Prawo jest odporne: dotyczy żądań webowych, stolików w restauracji, kolejek w supermarketach i potoków procesorów (CPU) bez żadnych modyfikacji.

Trzy konkretne przykłady:

- Usługa webowa obsługuje 200 żądań/s przy średnim opóźnieniu 50 ms (0,05 s). L = 200 × 0,05 = 10 żądań w trakcie przetwarzania.

- Kawiarnia obsługuje 60 klientów/godzinę przy średnim czasie pobytu 15 minut (0,25 h). L = 60 × 0,25 = 15 klientów wewnątrz.

- Pool backendowy obsługuje 1500 żądań/s przy średnim opóźnieniu 200 ms (0,2 s). L = 1500 × 0,2 = 300 żądań w trakcie przetwarzania.

Wpływ na rozmiarowanie: liczba workerów / wątków / połączeń warstwy musi wynosić co najmniej L, aby nadążyć. Mniejsza liczba oznacza wzrost kolejki.

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

Twoja warstwa API obsługuje 1200 żądań/s przy średnim opóźnieniu 80 ms. Zastosuj prawo Little'a, aby obliczyć L. Następnie wyjaśnij, co się zmienia: (a) jeśli ruch podwoi się do 2400 żądań/s, a opóźnienie pozostanie bez zmian, oraz (b) jeśli ruch pozostanie na poziomie 1200 żądań/s, ale opóźnienie wzrośnie do 160 ms. Który scenariusz generuje większe L i co to oznacza operacyjnie?

Dlaczego opóźnienia gwałtownie rosną powyżej 80% wykorzystania

Najważniejsza krzywa w operacjach

Nanieś wykorzystanie na oś X (od 0% do 100%) oraz średni czas oczekiwania na oś Y. Jej kształt to jedna z najważniejszych krzywych w planowaniu pojemności.

Model kolejkowy M/M/1: dla systemu z przychodami Poissona (losowymi) oraz czasami obsługi wykładniczymi (losowymi), średni czas oczekiwania:

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

gdzie ρ to wykorzystanie (od 0 do 1), a μ to tempo obsługi.

Kształt krzywej:

- Przy ρ = 0,5 (50% wykorzystania) czas oczekiwania jest niewielki (1 czas obsługi).

- Przy ρ = 0,7 (70% wykorzystania), czas oczekiwania wynosi ~2,3 czasu obsługi.

- Przy ρ = 0,8 (80% wykorzystania), czas oczekiwania wynosi ~4 czasu obsługi.

- Przy ρ = 0,9 (90% wykorzystania), czas oczekiwania wynosi ~9 czasu obsługi.

- Przy ρ = 0,95 (95% wykorzystania), czas oczekiwania wynosi ~19 czasu obsługi.

- Przy ρ = 1,0 (100% wykorzystania), czas oczekiwania jest nieskończony.

Kolano: w okolicach 80% wykorzystania krzywa ostro się załamuje. Poniżej kolana pojemność jest komfortowa; powyżej, opóźnienia rosną szybciej niż wykorzystanie.

Praktyczna interpretacja: celuj w 70% wykorzystania dla stanu ustalonego, nigdy w 100%. 30% „zapasu” nie jest marnotrawstwem; to cena ograniczonych opóźnień.

Krzywa kolejkowa z kolanem przy 80% wykorzystania

Rozmiarowanie w okolicy „kolana” krzywej

Dwa scenariusze:

Scenariusz A: 10 replik działających przy 60% obciążeniu CPU. Opóźnienie p99 = 100 ms.

Scenariusz B: ta sama flota działająca przy 90% obciążeniu CPU z powodu wzrostu ruchu. p99 = 600 ms.

Ta sama flota, ten sam kod, zmieniło się tylko obciążenie.

Wyjaśnij, dlaczego opóźnienie w scenariuszu B jest 6 razy gorsze, mimo że wzrost obciążenia wyniósł tylko 1,5 raza, korzystając z geometrycznego kształtu krzywej kolejkowania. Następnie zaproponuj: przy jakim obciążeniu zespół powinien dodać moc obliczeniową i dlaczego ten próg, a nie oczekiwanie na faktyczne naruszenie SLO?

Wymiarowanie i wyzwalacze w praktyce

Synteza

Teraz możesz stosować prawo Little’a jako prostokąt, odczytywać krzywą kolejkową i jej kolano oraz łączyć oba te elementy z decyzjami dotyczącymi pojemności.

Zastosuj oba.

Warstwa backendowa obsługuje 2 000 żądań/s, przy średnim opóźnieniu 50 ms na replikę o wydajności 80 żądań/s przy 70% obciążeniu CPU. Współczynnik szczytu (surge) wynosi 2x; chcesz przetrwać jednoczesne awarie 3 replik.

Oblicz: (1) L, korzystając z prawa Little'a w stanie bazowym; (2) liczbę replik, używając wzoru z lekcji (szczyt × współczynnik szczytu / wydajność na replikę) + zapas; (3) przy jakim obserwowanym obciążeniu (utilization) całej floty powinien zostać uruchomiony autoscaling oraz uzasadnij ten próg, odwołując się do krzywej kolejkowania.

Notatki towarzyszące

Notatki towarzyszące

Ta lekcja z zakresu geometrii przekształca główną lekcję Bestanowego Skalowania Poziomowego w ilościową geometrię.

Następny towarzysz, geometry_of_ingress_egress_separation, przekształca podział granicy sieci w graf dwudzielny z wierzchołkiem cięcia, który ten podział usuwa.

Bardzo dobrze.