Sa oled kauplejate ja kaardiväljastajate vahel asuva makselüliti operatsioonilaua juures. Igal minutil saabub umbes 400 tehingut sekundis; igaüks saab pettuse skoori, ootab vaba ühendusepesa ja edastatakse väljastajale vastuse saamiseks. Mudel arvutab järjekorrad, ajalõpud, kliendi korduskatsed, pettusesõela kompromissi ja asendusloa riski õpikuvalemitega. Summad on üldistes rahaühikutes (u). Ainult õppesimulatsioon — mitte finants-, õigus- ega investeerimisnõu.
Mida sa õpid
Miks korduskatsed võivad ülekoormatud lüliti korduskatsete tormi lukustada isegi pärast võimsuse lisamist — ja kuidas koormuse mahavõtt silmuse katkestab.
Kuidas pettuse skoori lävi kaalub pettusekahjusid hea kliendi tagasilükkamise vastu ja miks õige lävi sõltub pettuse baasmäärast.
Kuidas üks aeglane väljastaja täidab kõik ühendusepesad (Little'i seadus) ning mida ajalõpud ja asendusluba maksma lähevad.
Simulaator
Aeg 0 min
▶Server kasutusel
⚙Server käivitub
·Vaba serveririiuli koht
✓Väljastaja vastab normaalselt
⌛Väljastaja aeglane või maas
⇄Asendusloa töötlus sees
•Sissetulevad tehingud
Juhtimine
Igal serveril on 32 ühendusepesa. Lisatud serverid käivituvad 5 minutiga; iga server on arvel, olgu see käivitumas või mitte.
Võtab vastu kuni 90 % võimsusest ja vastab ülejäägile kohe „proovi hiljem“, selle asemel et lasta sellel järjekorras oodata ja ajalõpuni jõuda.
Kuidas kauplejad pärast tehnilist tõrget uuesti proovivad (kuni 3 korduskatset). Kohe = järgmise minuti jooksul; ooteaeg = juhuslikustatud eksponentsiaalne ooteaeg, keskmised viivitused 1, 2 ja 4 minutit.
Tehingud, mille skoor on selle väärtusega võrdne või sellest kõrgem, lükatakse tagasi. Skoorid on ehtsa liikluse standardhälvetes: madalam tähendab rohkem peatatud pettust ja rohkem tagasi lükatud häid kliente.
Nii kaugel läve all olevad skoorid saavad otsuse asemel täiendava kliendikatse: 85 % ehtsatest klientidest sooritab selle, 5 % petturitest läbib. 0 = väljas.
Kui kaua ühendusepesa ootab väljastaja vastust. Pärast seda saadab lüliti tühistuse ja kasutab asendusluba (stand-in) või lükkab tagasi põhjusega „väljastaja pole kättesaadav“.
Kui väljastaja ei vasta õigel ajal, kiidab lüliti tema nimel heaks kuni selle summani. Iga asendusloaga heakskiit on risk, mida väljastaja pole kunagi kontrollinud. 0 = väljas.
Näitajad
Heade klientide heakskiitmise määr
99,9%
normaalne
Autoriseerimise aeg
330ms
normaalne
Pettuse määr (osakaal heakskiidetud summast)
10,4bp
normaalne
Ühendusepesad hõivatud
69%
normaalne
Heakskiitmise määr, terved väljastajad
99,9 %
Pettusereegli tagasi lükatud head kliendid
1,3 ‰
Täiendavale autentimisele suunatud tehingud
0,0 %
Peatatud pettus
31 %
Uued tehingud
400 tx/s
Pakutud koormus (uued + korduskatsed)
400 tx/s
Korduskatsed
0 tx/s
Maha võetud (vastatud „proovi hiljem“)
0 tx/s
Järjekorras kaduma läinud
0,0 %
Väljastajate ajalõpud
0,0 %
Asendusloaga heakskiidud
0 tx/s
Serverid kasutusel
6
Käivituvad serverid
0
Serverikulu ajaühikus
36 u/h
Serverikulu seni
0 u
Asendusloa risk
0,00 M u
Seni heaks kiidetud pettus
0,00 M u
Seni kaotatud head tehingud
0,0 k tx
Korduskatset ootavad tehingud
0 tx
Väljastajate rühma B latentsus (keskmine)
250 ms
Trend
Kriisistsenaariumid
Tase 1 · Müügitipu tõus
Suur veebimüük algab 5. minutil ja kahekordistab liikluse umbes 800 tehinguni sekundis 45 minutiks. Lüliti töötab 6 serveriga, mõõtmestatud tavapäevaks umbes 70 % koormusega. Kauplejad proovivad iga tehnilist tõrget kohe uuesti. Hoia head kliendid heakskiidetuna ja vastused kiired, ostmata mittevajalikku võimsust.
Heade klientide keskmine heakskiitmise määr ≥ 95 % müügi algusest peale
Keskmine autoriseerimise aeg ≤ 500 ms
Serverikulu ≤ 75 u
Tase 2 · Pettuselaine
5. minutil hakatakse kasutama varastatud kaardiandmete partiid: pettuse osakaal liiklusest hüppab 0,1 %-lt 1 %-ni. Tagasilükkamise lävi on seatud tavapäevadele (3σ) ja täiendav autentimine on välja lülitatud. Vii pettuse määr alla, lükkamata tagasi häid kliente.
Keskmine pettuse määr ≤ 25 bp
Heade klientide keskmine heakskiitmise määr ≥ 98 %
Reegli tagasi lükatud head kliendid ≤ 5 ‰
Tase 3 · Väljastajate rike
5. minutil aeglustuvad rühma B väljastajad — veerand kogu liiklusest — keskmise 12-sekundilise vastamisajani. Lüliti ootab vastust kuni 8 s, tal pole asendusluba ja ta töötab 6 serveriga. Hoia tervete väljastajate kliendid liikumas, teeninda rühma B niivõrd kui turvaliselt suudad ning hoia asendusloa risk ja kulu kontrolli all.
Tervete väljastajate klientide keskmine heakskiitmise määr ≥ 90 %
Heade klientide keskmine heakskiitmise määr ≥ 86 %
Asendusloa risk ≤ 9 M u
Serverikulu ≤ 65 u
Alus — arvude taga olev mudel
Kõik seosed, mida simulaator kasutab, koos allikaga. Eeldustena märgitud konstandid on illustratiivsed kalibreeringud.
Uued tehingud saabuvad baaskiirusel korrutatuna müügitormi kordajaga; minutis saabuv arv on juhuslik (Poisson, normaalhinnang) ja veidi laineline.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Eeldus: pesade arvud, teenindus- ja väljastaja ajad, skooride eristatavus, täiendava autentimise läbimismäärad, raisatud töö osakaal, summad ja hinnad on illustreerivad väärtused keskmise suurusega lüliti jaoks, mitte ühegi tegeliku võrgu näitajad.
Binormaalne pettuseskoor: ehtsate ja pettuste skoorid on kaks normaalkõverat d′ kaugusel teineteisest; lävi valib punkti ROC-kõveral.
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]Eeldus: pesade arvud, teenindus- ja väljastaja ajad, skooride eristatavus, täiendava autentimise läbimismäärad, raisatud töö osakaal, summad ja hinnad on illustreerivad väärtused keskmise suurusega lüliti jaoks, mitte ühegi tegeliku võrgu näitajad.
Kuluoptimaalne lävi: lükka tagasi, kui tõepärasuhe ületab baasmäära järgi kaalutud kulusuhte — kümme korda rohkem pettust nihutab seda ln 10 / d′ ≈ 0,9σ võrra madalamale.
Täiendav autentimine: läve all vööndis olevaid skoore ei otsustata, vaid esitatakse neile kliendikatse.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Eeldus: pesade arvud, teenindus- ja väljastaja ajad, skooride eristatavus, täiendava autentimise läbimismäärad, raisatud töö osakaal, summad ja hinnad on illustreerivad väärtused keskmise suurusega lüliti jaoks, mitte ühegi tegeliku võrgu näitajad.
Väljastaja latentsus on eksponentsiaalne; pesa on hõivatud latentsuse või ajalõpu ajaks, olenevalt sellest, kumb tuleb enne.
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]
Erlang C: tõenäosus, et tehing ootab vaba ühendusepesa, ja tõenäosus, et ta ootab kauem kui 2 s järjekorra ajalõpp.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Üle võimsuse kulutab lüliti tööd ka päringutele, mille ta hiljem maha jätab, nii et kasulik läbilaskevõime langeb koormuse kasvades; koormuse mahavõtt keeldub ülejäägist odavalt.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Eeldus: pesade arvud, teenindus- ja väljastaja ajad, skooride eristatavus, täiendava autentimise läbimismäärad, raisatud töö osakaal, summad ja hinnad on illustreerivad väärtused keskmise suurusega lüliti jaoks, mitte ühegi tegeliku võrgu näitajad.
Kliendi korduskatsed: iga tehnilist tõrget proovitakse uuesti kuni kolm korda, kohe või juhuslikustatud eksponentsiaalse ooteajaga.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Eeldus: pesade arvud, teenindus- ja väljastaja ajad, skooride eristatavus, täiendava autentimise läbimismäärad, raisatud töö osakaal, summad ja hinnad on illustreerivad väärtused keskmise suurusega lüliti jaoks, mitte ühegi tegeliku võrgu näitajad.
Väljastaja ajalõpp, tühistus ja asendusluba: summad on lognormaalsed, seega järgnevad piirist allpool olev osa ja heakskiidetud maht normaaljaotuse kumulatiivsest jaotusfunktsioonist.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Pettuse määr baaspunktides heakskiidetud summast; 13 bp on võrdlusskaala väikestele kaugmaksetele kaardiga.
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 timeEeldus: pesade arvud, teenindus- ja väljastaja ajad, skooride eristatavus, täiendava autentimise läbimismäärad, raisatud töö osakaal, summad ja hinnad on illustreerivad väärtused keskmise suurusega lüliti jaoks, mitte ühegi tegeliku võrgu näitajad.
Juhuslikkus: seemnega mulberry32 generaator; kasutatud jaotused — ühtlane, eksponentsiaalne (pöördkumulatiivne jaotusfunktsioon), normaal (Box–Muller), Poisson (Knuth). Seeme on nähtav ja jagatav.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013