Dirbate mokėjimų komutatoriaus, esančio tarp prekybininkų ir kortelių išdavėjų, operacijų valdymo pulte. Kiekvieną minutę atvyksta apie 400 operacijų per sekundę; kiekviena įvertinama dėl sukčiavimo, laukia laisvos jungčių vietos ir persiunčiama išdavėjui atsakymui gauti. Modelis skaičiuoja eiles, laukimo ribas, kliento pakartojimus, sukčiavimo patikros kompromisą ir pakaitinio tvirtinimo riziką pagal vadovėlines formules. Sumos pateiktos bendrinio vieneto (u) vienetais. Tik mokomoji simuliacija — tai ne finansinė, teisinė ar investicinė konsultacija.
Ko išmoksite
Kodėl pakartojimai gali užfiksuoti perkrautą komutatorių pakartojimų audroje net pridėjus pajėgumo — ir kaip apkrovos mažinimas nutraukia ciklą.
Kaip sukčiavimo įverčio riba iškeičia sukčiavimo nuostolius į atmestus gerus klientus ir kodėl tinkama riba priklauso nuo bazinio sukčiavimo dažnio.
Kaip vienas lėtas išdavėjas užpildo visas jungčių vietas (Little dėsnis) ir kiek kainuoja laukimo ribos bei pakaitinis tvirtinimas.
Simuliatorius
Laikas 0 min.
▶Serveris veikia
⚙Serveris paleidžiamas
·Laisva serverio vieta spintoje
✓Išdavėjas atsako normaliai
⌛Išdavėjas lėtas arba neveikia
⇄Pakaitinis tvirtinimas įjungtas
•Ateinančios operacijos
Valdikliai
Kiekvienas serveris turi 32 jungčių vietas. Pridėti serveriai paleidžiami per 5 minutes; apmokestinamas kiekvienas serveris, ar jis paleidžiamas, ar ne.
Priima ne daugiau kaip 90 % pajėgumo, o perteklių iškart atmeta atsakymu „bandykite vėliau“, užuot leidęs jam stoti į eilę ir baigtis laukimo riba.
Kaip prekybininkai kartoja techninį gedimą (iki 3 kartų). Iš karto = per kitą minutę; atidėjimas = atsitiktinis eksponentinis atidėjimas, vidutinės delsos 1, 2 ir 4 minutės.
Operacijos, kurių įvertis lygus šiai ribai ar didesnis, atmetamos. Įverčiai išreikšti tikro srauto standartiniais nuokrypiais: mažesnė riba reiškia daugiau sustabdytų sukčiavimų ir daugiau atmestų gerų klientų.
Įverčiai tiek žemiau ribos gauna papildomą kliento patikrinimą vietoj sprendimo: 85 % tikrų klientų jį atlieka, 5 % sukčių praeina. 0 = išjungta.
Kiek ilgai jungties vieta laukia išdavėjo atsakymo. Po to komutatorius išsiunčia atšaukimą ir naudoja pakaitinį tvirtinimą (stand-in) arba atmeta nurodydamas „išdavėjas nepasiekiamas“.
Kai išdavėjas laiku neatsako, komutatorius jo vardu patvirtina iki šios sumos. Kiekvienas pakaitinis patvirtinimas yra rizika, kurios išdavėjas niekada nepatikrino. 0 = išjungta.
Rodikliai
Gerų klientų patvirtinimo dalis
99,9%
normali
Autorizavimo laikas
330ms
normali
Sukčiavimo dažnis (dalis nuo patvirtintos sumos)
10,4bp
normali
Užimtos jungčių vietos
69%
normali
Patvirtinimo dalis, sveiki išdavėjai
99,9 %
Gerų klientų, atmestų pagal sukčiavimo taisyklę
1,3 ‰
Į papildomą patvirtinimą nukreiptos operacijos
0,0 %
Sustabdytas sukčiavimas
31 %
Naujos operacijos
400 tx/s
Siūloma apkrova (naujos + pakartojimai)
400 tx/s
Pakartojimai
0 tx/s
Atmesta (atsakyta „bandykite vėliau“)
0 tx/s
Atmesta eilėje
0,0 %
Išdavėjų laukimo ribos viršijimai
0,0 %
Pakaitiniai patvirtinimai
0 tx/s
Veikiantys serveriai
6
Serveriai paleidžiami
0
Serverių kainos sparta
36 u/h
Serverių kaina iki šiol
0 u
Pakaitinio tvirtinimo rizika
0,00 M u
Patvirtintas sukčiavimas iki šiol
0,00 M u
Prarastos geros operacijos iki šiol
0,0 k tx
Operacijos, laukiančios pakartojimo
0 tx
B grupės išdavėjų delsa (vidutinė)
250 ms
Tendencija
Krizių scenarijai
1 lygis · Išpardavimo srauto pikas
5 minutę prasideda didelė internetinė išpardavimų akcija ir 45 minutėms padvigubina srautą iki maždaug 800 operacijų per sekundę. Komutatorius turi 6 serverius, apskaičiuotus įprastai dienai, kai užimta apie 70 %. Prekybininkai kiekvieną techninį gedimą kartoja iš karto. Išlaikykite gerų klientų patvirtinimus ir greitus atsakymus nepirkdami pajėgumo, kurio jums nereikia.
Vidutinė gerų klientų patvirtinimo dalis ≥ 95 % nuo išpardavimo pradžios
Vidutinis autorizavimo laikas ≤ 500 ms
Serverių kaina ≤ 75 u
2 lygis · Sukčiavimo banga
5 minutę pradedami naudoti pavogtų kortelių duomenys: sukčiavimo dalis sraute šokteli nuo 0,1 % iki 1 %. Atmetimo riba nustatyta įprastoms dienoms (3σ), o papildomas patvirtinimas išjungtas. Sumažinkite sukčiavimo dažnį neatstumdami gerų klientų.
Vidutinis sukčiavimo dažnis ≤ 25 bp
Vidutinė gerų klientų patvirtinimo dalis ≥ 98 %
Pagal taisyklę atmestų gerų klientų ≤ 5 ‰
3 lygis · Išdavėjų gedimas
5 minutę B grupės išdavėjai — ketvirtadalis viso srauto — sulėtėja iki 12 sekundžių vidutinio atsakymo laiko. Komutatorius laukia atsakymo iki 8 s, neturi pakaitinio tvirtinimo ir veikia su 6 serveriais. Užtikrinkite sveikų išdavėjų klientų srautą, aptarnaukite B grupę kiek saugiai įmanoma ir išlaikykite pakaitinio tvirtinimo riziką bei kainą kontroliuojamas.
Vidutinė sveikų išdavėjų klientų patvirtinimo dalis ≥ 90 %
Vidutinė gerų klientų patvirtinimo dalis ≥ 86 %
Pakaitinio tvirtinimo rizika ≤ 9 M u
Serverių kaina ≤ 65 u
Pagrindas — modelis už skaičių
Kiekviena simuliatoriaus naudojama priklausomybė su savo šaltiniu. Konstantos, pažymėtos kaip prielaidos, yra iliustraciniai kalibravimai.
Naujos operacijos atvyksta bazinės spartos × pardavimų šuolio sparta; operacijų skaičius per minutę yra atsitiktinis (Puasono, normalusis artinys) su nedideliu pliūpsniškumu.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Prielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.
Binormalus sukčiavimo įvertis: tikri ir sukčių įverčiai yra dvi normaliosios kreivės d′ atstumu; riba pasirenka tašką ROC kreivėje.
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]Prielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.
Kaštų atžvilgiu optimali riba: atmesti, kai tikėtinumo santykis viršija kaštų santykį, pasvertą bazine sukčiavimo dažnio dalimi — dešimt kartų daugiau sukčiavimo ją nuleidžia ln 10 / d′ ≈ 0,9σ.
Papildomas patvirtinimas: įverčiai juostoje žemiau ribos tikrinami papildomai, užuot buvę nuspręsti iš karto.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Prielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.
Išdavėjo delsa yra eksponentinė; jungčių vieta užimta delsos arba laukimo ribos laiką, kuris trumpesnis.
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]
Little dėsnis: užimtos jungčių vietos = atvykimo sparta × užimtumo laikas.
Erlango C: tikimybė, kad operacija lauks laisvos jungčių vietos, ir tikimybė, kad lauks ilgiau nei 2 s eilės laukimo riba.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Viršijus pajėgumą, komutatorius dirba ir su užklausomis, kurias vėliau atmeta, todėl naudingoji pralaida mažėja didėjant apkrovai; apkrovos mažinimas perteklių atmeta pigiai.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Prielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.
Kliento pakartojimai: kiekvienas techninis gedimas kartojamas iki trijų kartų — iš karto arba su atsitiktiniu eksponentiniu atidėjimu.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Prielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.
Išdavėjo laukimo riba, atšaukimas ir pakaitinis tvirtinimas: sumos yra lognormaliosios, todėl dalis žemiau ribos ir patvirtintas kiekis išplaukia iš normaliojo skirstinio funkcijos.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Sukčiavimo dažnis bazinio punkto dalimis nuo patvirtintos sumos; 13 bp naudojama kaip atskaitos skalė mažoms nuotolinėms kortelių operacijoms.
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 timePrielaida: jungčių vietų skaičius, aptarnavimo ir išdavėjo laikai, įverčių atskyrimas, papildomo patvirtinimo praėjimo dalys, veltui atlikto darbo dalis, sumos ir kainos yra iliustraciniai vidutinio komutatoriaus dydžiai, o ne kokio nors realaus tinklo skaičiai.
Atsitiktinumas: mulberry32 generatorius su pradiniu skaičiumi; naudojami skirstiniai — tolygusis, eksponentinis (atvirkštinė pasiskirstymo funkcija), normalusis (Box–Muller), Puasono (Knuth). Pradinis skaičius rodomas ir juo galima dalytis.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013