GH GambleHub

Planowanie przepustowości i wzrost obciążenia

Krótkie podsumowanie

Moc jest zdolność do wytrzymania docelowego SLO dla oczekiwanego wzrostu obciążenia i awarii. Podstawa:

1. Prognoza popytu (tendencja bazowa + sezonowość + zdarzenia).

2. Model obciążenia (model otwarty dla Internetu).

3. Główna sala i błędny budżet.

4. Skalowanie (horyzont/pionowy/auto) + ograniczenia (prędkość graniczna/ciśnienie wsteczne).

5. Finanse: $/1000 RPS, $/ms p95, TCO według scenariusza.

Warunki i mierniki

Przepustowość: RPS/QPS/CPS - rzeczywista przepustowość.
Latency p95/p99: docelowe SLO dla ścieżek użytkownika.
Nasycenie: procesor/pamięć/IO/FD/połączenia/kolejki ładowania.
Wskaźnik błędów: 5xx/timeout/429, błędny budżet na dany okres.
Zagłówek: udział wolnej mocy w ruchu szczytowym (zalecany ≥ 30%).
Wybuch: krótkotrwały skok (sekundy/minuty), Spike: gwałtowny wzrost × N.

Podstawowe modele i wzory

Prawo małe (dla systemów kolejkowych)


L = λ W

L jest średnią liczbą zapytań w systemie, jest średnią szybkością wejścia (RPS), W jest średnim czasem w systemie. Przydatne do oszacowania głębokości kolejki.

Współczynnik obciążeń ()


ρ = λ / μ

• - prędkość robocza (RPS przy 100% procesora). W sytuacji, w której nie ma opóźnień → 1, opóźnienie wzrasta nieliniowo - należy zachować punkt roboczy, a ≤ 0. 6–0. 75.

Współczynnik bezpieczeństwa/margines


Capacity_required = Peak_load (1 + Headroom) Degradation_factor

Gdzie Degradation_factor odpowiada za awarię N, degradację pamięci podręcznej, utratę jednego PoP/region (np., 1. 2).

Prognoza popytu

1. Historia: dzienne/tygodniowe profile, sezonowość, korelacja z wydarzeniami (mecze/strumienie/wypłaty).
2. Wydarzenia: współczynniki scenariusza (dzień regularny × 1, turniej × 2. 3, końcowy × 3. 5).
3. Źródła wahań: kampanie marketingowe, wydania, anomalie botów.
4. Jednostki prognostyczne: RPS na trasach (login, lobby, katalog, płatności), CPS TLS, QPS DB, dysk IOPS, egress Gbps.
5. Zaufanie: Zachowaj dwa scenariusze - konserwatywny i agresywny.

Symulacja obciążenia

Open-model (Poisson-like arrival): prawdopodobne dla publicznych API/web - zastosowanie do rozmiaru.
Model zamknięty (VU + think-time): odpowiedni do sekwencji wewnętrznych; połączyć.
Mieszaniny trasy: frakcje wagowe na punkty końcowe; obejmują nie tylko „gorące”, ale także „drogie” (rejestracja, depozyt).
Nie zapomnij: retras, kolejki, limity partnerskie (PSP, API osób trzecich).

Projekt marginesu bezpieczeństwa

Cel zagłówka: ≥ 30% do szczytu (dla Internetu); dla rdzenia płatności i ścieżek krytycznych - 40-50%.
N + 1/N + 2: wytrzymać awarię 1-2 instancji/stref bez naruszania SLO.
Wielobranżowy: każdy region pociąga za sobą ≥ 60% całkowitego szczytu (aby przetrwać utratę sąsiada).
Tryb degradacji: wyłączyć funkcje wtórne, zmniejszyć ładunek użytkowy, włączyć reakcje pamięci podręcznej/dźgnięcia.

Rozmiar według warstwy

Sieć/krawędź

CPS/RPS z przodu, TLS-shake p95, wznowienie ≥ 70%, egress Gbps.
Anycast/Geo-routing, limity CDN/WAF (uzgodnić z wyprzedzeniem).
Margines: link/aplink ≥ szczyt × 1. 3, zaległości SYN z marginesem UDP/443 dla H3.

Balancery/Pełnomocnicy

RPS do instancji, otwarte połączenia, kolejki, procesor/IRQ.
Utrzymywanie i łączenie połączeń - zmniejszyć połączenia do backendów.
Stado: α ≤ 0. 7, ogranicznik CPS/RPS na trasę.

Aplikacje

Docelowa wydajność na rdzeń (RPS/rdzeń) na płaskowyżu.
Puli (thread/DB/HTTP) - nie należy uruchamiać limitów.
Magazyn: autoskale do 60-70% CPU i opóźnienie (p95).

Bufory

Współczynnik trafienia, głośność hotset, eksmisja, replika.
Rezerwa: pamięć ≥ 1. 2 × hotset, zagłówek sieci ≥ 30%.

Bazy danych

QPS/TPM, żądania p95, zamki, bufor cache, WAL/replication lag.
Napędy IOPS i opóźnienia są kluczem do p95.
Margines: punkt operacyjny CPU 50-65%, replika lag <target; plan chardingowy i odczyt-repliki.

Dyski/pamięć masowa

IOPS (4k/64k), przepustowość, koszt fsync.
Stado: IOPS ≥ szczyt × 1. 5, opóźnienie p95 w oknie docelowym; oddzielne puli dla dziennika/danych.

GPU/ML (jeśli istnieje wniosek online)

Próbki/s, opóźnienia, zagłówek VRAM, łączenie.
Margines: parametry partii pod obciążeniem „piły”, GPU ciepłej puli.

Automatyczne skalowanie

HPA/KEDA: metryki procesora + niestandardowe (opóźnienie p95, RPS, kolejka).
Ciepłe baseny: wstępnie podgrzane instancje przed wydarzeniami.
Skalowanie kroków: kroki z chłodzeniem, aby nie „piła”.
Czas reakcji: celować w T_scale ≤ 1-2 minut dla warstwy przedniej; dla DB - z góry.

Ograniczenia i ciśnienie wsteczne

Ograniczenie stawek - IP/ASN/device/route; kwoty partnerskie.
Kolejki z TTL, odmowa „grzeczny” (429/via gray-vol) przed czasem.
Idempotencja: klucze do płatności; przekłady z budżetem + jitter.
Żądanie zawalenia/SWR: Nie budzić pochodzenia podczas rozprysku.

Przykład szybkiego obliczania

Biorąc pod uwagę: 35k RPS API prognoza szczytowa, p95 ≤ 250 ms, średni czas obsługi 8 ms na instancję przy 60% CPU → α 125 RPS/rdzeń, 8 rdzeni na instancję → ~ 1000 RPS/instancja.
Etap 1 (brak zapasów): 35 instancji.
Etap 2 (zagłówek 30%): 35 × 1. 3 = 46.
Etap 3 (awaria jednego AZ, + 20%): 46 × 1. 2 ≈ 55.
Krok 4 (zaokrąglanie + gorąca rezerwa 10%): 61 instancji.
Sprawdź: Na blankie35k/( 61k) wg 0. 57 - w strefie zielonej.

Model finansowy (FinOps)

$/1000 RPS według warstwy (krawędź, serwer proxy, aplikacja, DB).
$/ms p95 (koszt redukcji ogona).
Scenariusze TCO: na żądanie vs zarezerwowane vs spot (z ryzykiem przerw).
Plan przepustowości: kwartalne limity konta/klastra, kwoty w chmurze, limity PSP/CDN.

Gotowy do awarii i DR

Multi-AZ/region: każde ramię - 60% obciążenia.
Plan awaryjny: wycofać Anycast, przełączanie GSLB, TTL ≤ 60-120 s.
Zależności krytyczne: limity PSP/bankowe, dostawca wtórny.
Okresowe ćwiczenia: dzień gry z PoP/BG/cache off.

Obserwowalność i wczesne sygnały nasycenia

Wzrost p95/p99 i kolejki ze stabilnym wejściem.
Kropla pamięci podręcznej, wzrost pochodzenia.
Retransmitty/wzrost ECN CE, spadek wznowienia TLS.
Wzrost 429/timeout i powtórny tempo.
Dla baz danych - wzrost konfliktu, czas punktu kontrolnego, WAL fsync.

Praktyki operacyjne

Miesięczny przegląd zdolności: fakt vs plan.
Zmień okna na zdarzenia: zamrażaj jądra i limity.
Prewarm (CDN/DNS/TLS/baseny) 10-30 min przed szczytem.
Wersioning limitu: fix rate-limit/pools configs in Git.

iGaming/specyficzne dla fintechu

Turnieje/mecze: spike + profile plateau, szare trasy dla botów, oddzielne limity rejestracji/depozytu.
Płatności/PSP: dostawca/metody kwot, trasy awaryjne, puli egress-IP, SLA Time-to-Wallet.
Dostawcy treści: dystrybucja przez studio, hot caches, shard baseny.
Antifraud/AML: ograniczenie zasad/punktacji, degradacja do reguł światła na szczycie.

Lista kontrolna implementacji

  • Prognoza szczytu (baza/sezon/wydarzenia), dwa scenariusze.
  • SLO/niewłaściwy budżet i docelowa sala robocza ≥ 30%.
  • Rozmiar według warstwy (krawędź/proxy/app/cache/DB/IO/network).
  • Limit stawek, kolejka, idempotencja, ponowny proces budżetowy.
  • HPA/KEDA + ciepłe baseny; plan promocji przed wydarzeniem.
  • Multi-AZ/region, playbooks awaryjne, TTL i GSLB.
  • Kwoty w chmurze/PSP/CDN są spójne i udokumentowane.
  • Obserwowalność: deski rozdzielcze pojemności, wczesne sygnały nasycenia.
  • Ćwiczenia DR i regularny przegląd zdolności.

Częste błędy

Plan dla przeciętnego RPS bez ogonków/kolców.
ρ≈0. 9 „na papierze” - opóźnienie wybucha przy najmniejszym hałasie.
Ignorowanie limitów usług zewnętrznych (klaster PSP/CDN/DB).
Nie ma trybów degradacji i backpressure są awarie kaskadowe.
Automatyczna skala bez wstępnego ogrzewania - zarządza „po” szczycie.
Pojedynczy zagłówek dla wszystkich warstw - wąskie gardło migruje.

Mini playbooks

Przed wydarzeniem szczytowym (T-30 min)

1. Zwiększ minRepliki/cel HPA, włącz ciepłą pulę.
2. Ogrzewanie CDN/DNS/TLS/połączenia, podgrzewanie buforów.
3. Zwiększenie limitów i kwot puli PSP zgodnie z ustaleniami.
4. Włącz szare trasy/filtry bot, wąskie ciężkie punkty końcowe.

Częściowa utrata regionu

1. GSLB → sąsiedni region, TTL 60-120 s.
2. Włącz tryb degradacji (pamięć podręczna/uproszczona realizacja transakcji).
3. Redystrybucja limitów PSP/egress-IP.
4. Komunikacja stanu, p95/kontrola błędów.

Przepięcie w rekolekcjach

1. Zmniejszyć retry-budget, włączyć backoff + jitter.
2. Włącz zawalenie żądania/SWR na GET.
3. Tymczasowo zaostrzyć limit stawki dla „hałaśliwych” zasilaczy ASN.

Wynik

Planowanie przepustowości to prognoza popytu + model inżynieryjny + margines bezpieczeństwa + dźwignie operacyjne. Sformalizować SLO i zagłówek, rozważyć zewnętrzne ograniczenia, automatycznego skalowania i degradacji, zmierzyć „koszt na milisekundę” i przeprowadzić regularne przeglądy pojemności. Następnie wzrost obciążenia zmieni się nie w ryzyko, ale w możliwą do opanowania metrykę biznesową.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Telegram
@Gamble_GC
Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.