Pracujesz w dyspozytorni operacyjnej switcha płatniczego, który stoi między sprzedawcami a wydawcami kart. W każdej minucie napływa średnio ok. 400 transakcji na sekundę; każda jest oceniana pod kątem oszustwa, czeka na wolny slot połączenia i trafia do swojego wydawcy po odpowiedź. Model oblicza kolejkowanie, limity czasu, ponowienia klientów, kompromis sita antyfraudowego i ekspozycję stand-in z podręcznikowych wzorów. Kwoty są w ogólnych jednostkach walutowych (u). Wyłącznie symulacja edukacyjna — to nie jest porada finansowa, prawna ani inwestycyjna.
Czego się nauczysz
Dlaczego ponowienia mogą zablokować przeciążony switch w burzy ponowień nawet po dodaniu mocy — i jak ograniczanie obciążenia przerywa tę pętlę.
Jak próg wyniku oszustwa równoważy straty z oszustw i odrzucanych dobrych klientów oraz dlaczego właściwy próg zależy od bazowej częstości oszustw.
Jak jeden wolny wydawca zapełnia wszystkie sloty połączeń (prawo Little’a) i ile kosztują limity czasu oraz przetwarzanie stand-in.
Symulator
Czas 0 min
▶Serwer w eksploatacji
⚙Serwer się uruchamia
·Wolne miejsce w szafie serwerowej
✓Wydawca odpowiada normalnie
⌛Wydawca wolny lub niedostępny
⇄Przetwarzanie stand-in włączone
•Transakcje przychodzące
Sterowanie
Każdy serwer ma 32 sloty połączeń. Dodane serwery uruchamiają się 5 minut; każdy serwer jest rozliczany, uruchomiony lub nie.
Dopuszcza najwyżej 90 % przepustowości, a nadwyżkę od razu odrzuca odpowiedzią „spróbuj później”, zamiast pozwolić jej czekać w kolejce i przekroczyć limit czasu.
Jak sprzedawcy ponawiają błąd techniczny (do 3 ponowień). Natychmiast = w następnej minucie; backoff = losowy wykładniczy backoff, średnie opóźnienia 1, 2 i 4 minuty.
Transakcje z wynikiem równym temu progowi lub wyższym są odrzucane. Wyniki są w odchyleniach standardowych ruchu prawdziwych klientów: niższy próg oznacza więcej zatrzymanych oszustw i więcej odrzuconych dobrych klientów.
Wyniki tak daleko poniżej progu dostają dodatkowe wyzwanie dla klienta zamiast decyzji: 85 % prawdziwych klientów je przechodzi, 5 % oszustów przechodzi. 0 = wyłączone.
Jak długo slot połączenia czeka na odpowiedź wydawcy. Potem switch wysyła storno i używa stand-in albo odrzuca z powodem „wydawca niedostępny”.
Gdy wydawca nie odpowie na czas, switch zatwierdza w jego imieniu do tej kwoty. Każde zatwierdzenie stand-in to ekspozycja, której wydawca nigdy nie sprawdził. 0 = wyłączone.
Wskaźniki
Odsetek zatwierdzeń dobrych klientów
99,9%
normalny
Czas autoryzacji
330ms
normalny
Wskaźnik oszustw (udział w kwocie zatwierdzonej)
10,4bp
normalny
Zajęte sloty połączeń
69%
normalny
Odsetek zatwierdzeń, sprawni wydawcy
99,9 %
Dobrzy klienci odrzuceni przez regułę antyfraudową
1,3 ‰
Transakcje skierowane do step-up
0,0 %
Zatrzymane oszustwa
31 %
Nowe transakcje
400 tx/s
Obciążenie oferowane (nowe + ponowienia)
400 tx/s
Ponowienia
0 tx/s
Odrzucone (odpowiedź „spróbuj później”)
0 tx/s
Odrzucone w kolejce
0,0 %
Przekroczenia limitu czasu wydawców
0,0 %
Zatwierdzenia stand-in
0 tx/s
Serwery w eksploatacji
6
Uruchamiane serwery
0
Tempo kosztów serwerów
36 u/h
Dotychczasowy koszt serwerów
0 u
Ekspozycja stand-in
0,00 M u
Dotychczas zatwierdzone oszustwa
0,00 M u
Dotychczas utracone dobre transakcje
0,0 k tx
Transakcje czekające na ponowienie
0 tx
Opóźnienie wydawców grupy B (średnie)
250 ms
Trend
Scenariusze kryzysowe
Poziom 1 · Szczyt wyprzedaży
W 5. minucie rusza duża wyprzedaż online i podwaja ruch do ok. 800 transakcji na sekundę na 45 minut. Switch pracuje na 6 serwerach, dobranych na zwykły dzień przy ok. 70 % zajętości. Sprzedawcy ponawiają każdy błąd techniczny natychmiast. Utrzymaj zatwierdzanie dobrych klientów i szybkie odpowiedzi, nie kupując niepotrzebnej mocy.
Średnie zatwierdzanie dobrych klientów ≥ 95 % od początku wyprzedaży
Średni czas autoryzacji ≤ 500 ms
Koszt serwerów ≤ 75 u
Poziom 2 · Fala oszustw
W 5. minucie zaczyna być używana partia skradzionych danych kart: udział oszustw w ruchu skacze z 0,1 % do 1 %. Próg odrzucania jest ustawiony na zwykłe dni (3σ), a step-up jest wyłączony. Obniż wskaźnik oszustw, nie odrzucając dobrych klientów.
Średni wskaźnik oszustw ≤ 25 bp
Średnie zatwierdzanie dobrych klientów ≥ 98 %
Dobrzy klienci odrzuceni przez regułę ≤ 5 ‰
Poziom 3 · Awaria wydawców
W 5. minucie wydawcy grupy B — jedna czwarta całego ruchu — zwalniają do średniego czasu odpowiedzi 12 sekund. Switch czeka na odpowiedź do 8 s, nie ma stand-in i pracuje na 6 serwerach. Utrzymaj ruch klientów sprawnych wydawców, obsługuj grupę B, na ile bezpiecznie możesz, i trzymaj w ryzach ekspozycję stand-in oraz koszt.
Każda zależność używana przez symulator, wraz ze źródłem. Stałe oznaczone jako założenia to kalibracje poglądowe.
Nowe transakcje napływają w tempie bazowym razy wzrost sprzedaży; liczba na minutę jest losowa (rozkład Poissona, przybliżenie normalne) z niewielką porywistością.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Założenie: liczby slotów, czasy obsługi i wydawców, rozdzielenie wyników, odsetki przejścia step-up, udział zmarnowanej pracy, kwoty i ceny to wartości poglądowe dla średniej wielkości switcha, a nie dane żadnej rzeczywistej sieci.
Dwunormalny wynik oszustwa: wyniki prawdziwych klientów i oszustów to dwie krzywe normalne oddalone o d′; próg wybiera punkt na krzywej ROC.
genuine score ~ N(0,1), fraud ~ N(d′,1), d′ = 2.5; FPR(t) = 1 − Φ(t), TPR(t) = 1 − Φ(t − d′); AUC = Φ(d′/√2) ≈ 0.96[6][7]Założenie: liczby slotów, czasy obsługi i wydawców, rozdzielenie wyników, odsetki przejścia step-up, udział zmarnowanej pracy, kwoty i ceny to wartości poglądowe dla średniej wielkości switcha, a nie dane żadnej rzeczywistej sieci.
Próg optymalny kosztowo: odrzucaj, gdy iloraz wiarygodności przekracza iloraz kosztów ważony częstością bazową — dziesięciokrotnie więcej oszustw obniża go o ln 10 / d′ ≈ 0,9σ.
Step-up: wyniki w paśmie poniżej progu są poddawane wyzwaniu zamiast rozstrzygnięcia.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Założenie: liczby slotów, czasy obsługi i wydawców, rozdzielenie wyników, odsetki przejścia step-up, udział zmarnowanej pracy, kwoty i ceny to wartości poglądowe dla średniej wielkości switcha, a nie dane żadnej rzeczywistej sieci.
Opóźnienie wydawcy ma rozkład wykładniczy; slot jest zajęty przez czas opóźnienia albo limit czasu, w zależności od tego, co nastąpi pierwsze.
L ~ Exp(mean m); E[min(L, T)] = m(1 − e^(−T/m)), P(L > T) = e^(−T/m); S = 80 ms + forwarded × Σ share·E[min(L,T)][2][9]
Prawo Little’a: zajęte sloty = tempo napływu × czas zajęcia.
Erlang C: szansa, że transakcja czeka na wolny slot, i szansa, że czeka dłużej niż 2-sekundowy limit kolejki.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Powyżej przepustowości switch marnuje też pracę na żądania, które później odrzuca, więc przepustowość użyteczna spada wraz ze wzrostem obciążenia; ograniczanie obciążenia tanio odrzuca nadwyżkę.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Założenie: liczby slotów, czasy obsługi i wydawców, rozdzielenie wyników, odsetki przejścia step-up, udział zmarnowanej pracy, kwoty i ceny to wartości poglądowe dla średniej wielkości switcha, a nie dane żadnej rzeczywistej sieci.
Ponowienia klientów: każdy błąd techniczny jest ponawiany do trzech razy, od razu albo z losowym wykładniczym backoffem.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Założenie: liczby slotów, czasy obsługi i wydawców, rozdzielenie wyników, odsetki przejścia step-up, udział zmarnowanej pracy, kwoty i ceny to wartości poglądowe dla średniej wielkości switcha, a nie dane żadnej rzeczywistej sieci.
Limit czasu wydawcy, storno i stand-in: kwoty mają rozkład log-normalny, więc udział poniżej limitu i zatwierdzony wolumen wynikają z dystrybuanty normalnej.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Wskaźnik oszustw w punktach bazowych kwoty zatwierdzonej; 13 bp służy jako skala odniesienia dla małych zdalnych płatności kartą.
32 slots per server, 2–24 servers, +5 min boot, 6 u per server-hour · switch time 80 ms · queue timeout 2 s · issuer latency 250 ms (group B = 25 % of traffic, ±15 % per minute) · amounts lognormal, median 40 u, σ = 1, fraud ×1.5 · ω = 0.3 · shedding at 90 % · reversal = 80 ms of switch timeZałożenie: liczby slotów, czasy obsługi i wydawców, rozdzielenie wyników, odsetki przejścia step-up, udział zmarnowanej pracy, kwoty i ceny to wartości poglądowe dla średniej wielkości switcha, a nie dane żadnej rzeczywistej sieci.
Losowość: generator mulberry32 z ziarnem; użyte rozkłady — jednostajny, wykładniczy (odwrotna dystrybuanta), normalny (Box–Muller), Poissona (Knuth). Ziarno jest widoczne i można je udostępnić.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013