شما در میز عملیات یک سوئیچ پرداخت هستید که میان پذیرندگان و صادرکنندگان کارت قرار دارد. هر دقیقه بهطور میانگین حدود 400 تراکنش در ثانیه میرسد؛ هرکدام از نظر تقلب امتیاز میگیرد، منتظر یک اسلات اتصال آزاد میماند و برای پاسخ به صادرکنندهاش فرستاده میشود. مدل صفبندی، مهلتها، تلاشهای مجدد مشتری، بدهبستان غربال تقلب و ریسک stand-in را از فرمولهای درسی محاسبه میکند. مبالغ بر حسب واحدهای پولی عمومی (u) است. فقط شبیهسازی آموزشی — توصیه مالی، حقوقی یا سرمایهگذاری نیست.
چه چیزی یاد میگیرید
چرا تلاشهای مجدد میتوانند سوئیچی دچار اضافهبار را حتی پس از افزودن ظرفیت در یک طوفان تلاش مجدد قفل کنند — و محدودسازی بار چگونه این حلقه را میشکند.
آستانه امتیاز تقلب چگونه زیان تقلب را با رد مشتریان خوب مبادله میکند و چرا آستانه درست به نرخ پایه تقلب بستگی دارد.
یک صادرکننده کند چگونه همه اسلاتهای اتصال را پر میکند (قانون لیتل) و مهلتها و پردازش stand-in چه هزینهای دارند.
شبیهساز
زمان 0 min
▶سرور در حال سرویس
⚙سرور در حال راهاندازی
·جای خالی رک سرور
✓صادرکننده عادی پاسخ میدهد
⌛صادرکننده کند یا از کار افتاده
⇄پردازش stand-in روشن
•تراکنشهای ورودی
کنترلها
هر سرور 32 اسلات اتصال دارد. سرورهای افزوده 5 دقیقه برای راهاندازی زمان میبرند؛ هزینه هر سرور محاسبه میشود، چه در حال راهاندازی باشد چه نه.
حداکثر 90 % ظرفیت را میپذیرد و مازاد را بیدرنگ با «بعداً دوباره تلاش کنید» پاسخ میدهد، بهجای آنکه بگذارد در صف بماند و مهلتش تمام شود.
پذیرندگان چگونه یک خطای فنی را دوباره تلاش میکنند (تا 3 بار). فوری = در دقیقه بعد؛ عقبنشینی = عقبنشینی نمایی تصادفی، با تأخیر میانگین 1، 2 و 4 دقیقه.
تراکنشهایی که امتیازشان برابر یا بیشتر از این باشد رد میشوند. امتیازها بر حسب انحراف معیار ترافیک واقعیاند: پایینتر یعنی تقلب بیشتری متوقف میشود و مشتریان خوب بیشتری رد میشوند.
امتیازهایی که اینقدر زیر آستانهاند بهجای تصمیم، یک چالش اضافه برای مشتری میگیرند: 85 % مشتریان واقعی آن را کامل میکنند و 5 % متقلبان از آن میگذرند. 0 = خاموش.
یک اسلات اتصال تا چه مدت منتظر پاسخ صادرکننده میماند. پس از آن سوئیچ ابطال میفرستد و از stand-in استفاده میکند، یا با «صادرکننده در دسترس نیست» رد میکند.
وقتی صادرکننده بهموقع پاسخ نمیدهد، سوئیچ از طرف او تا این مبلغ تأیید میکند. هر تأیید stand-in ریسکی است که صادرکننده هرگز بررسی نکرده. 0 = خاموش.
شاخصها
نرخ تأیید مشتریان خوب
99.9%
عادی
زمان مجوزدهی
330ms
عادی
نرخ تقلب (سهم از مبلغ تأییدشده)
10.4bp
عادی
اسلاتهای اتصال مشغول
69%
عادی
نرخ تأیید، صادرکنندگان سالم
99.9 %
مشتریان خوبِ ردشده با قاعده تقلب
1.3 ‰
تراکنشهای ارسالشده به step-up
0.0 %
تقلب متوقفشده
31 %
تراکنشهای جدید
400 tx/s
بار عرضهشده (جدید + تلاش مجدد)
400 tx/s
تلاشهای مجدد
0 tx/s
ردشده با محدودسازی (پاسخ «بعداً»)
0 tx/s
رهاشده در صف
0.0 %
مهلتهای سپریشده صادرکننده
0.0 %
تأییدهای stand-in
0 tx/s
سرورهای در حال سرویس
6
سرورهای در حال راهاندازی
0
نرخ هزینه سرور
36 u/h
هزینه سرور تا اکنون
0 u
ریسک stand-in
0.00 M u
تقلب تأییدشده تا اکنون
0.00 M u
تراکنشهای خوب ازدسترفته تا اکنون
0.0 k tx
تراکنشهای منتظر تلاش مجدد
0 tx
تأخیر صادرکنندگان گروه B (میانگین)
250 ms
روند
سناریوهای بحران
سطح 1 · جهش حراج
در دقیقه 5 یک حراج بزرگ آنلاین شروع میشود و ترافیک را 45 دقیقه تا حدود 800 تراکنش در ثانیه دو برابر میکند. سوئیچ با 6 سرور کار میکند که برای یک روز عادی با حدود 70 % اشغال اندازه شدهاند. پذیرندگان هر خطای فنی را فوراً دوباره تلاش میکنند. مشتریان خوب را تأییدشده و پاسخها را سریع نگه دارید، بیآنکه ظرفیتی بخرید که لازم ندارید.
میانگین تأیید مشتریان خوب ≥ 95 % از شروع حراج
میانگین زمان مجوزدهی ≤ 500 ms
هزینه سرور ≤ 75 u
سطح 2 · موج تقلب
در دقیقه 5 دستهای از اطلاعات کارتهای دزدیدهشده شروع به استفاده میشود: سهم تقلب در ترافیک از 0.1 % به 1 % میپرد. آستانه رد برای روزهای عادی (3σ) تنظیم شده و step-up خاموش است. نرخ تقلب را پایین بیاورید، بیآنکه مشتریان خوب را رد کنید.
میانگین نرخ تقلب ≤ 25 bp
میانگین تأیید مشتریان خوب ≥ 98 %
مشتریان خوبِ ردشده با قاعده ≤ 5 ‰
سطح 3 · خرابی صادرکنندگان
در دقیقه 5 صادرکنندگان گروه B — یکچهارم کل ترافیک — کند میشوند و میانگین زمان پاسخشان به 12 ثانیه میرسد. سوئیچ تا 8 s منتظر پاسخ میماند، stand-in ندارد و با 6 سرور کار میکند. جریان مشتریان صادرکنندگان سالم را برقرار نگه دارید، گروه B را تا جایی که ایمن است سرویس دهید و ریسک stand-in و هزینه را مهار کنید.
میانگین تأیید مشتریان صادرکنندگان سالم ≥ 90 %
میانگین تأیید مشتریان خوب ≥ 86 %
ریسک stand-in ≤ 9 M u
هزینه سرور ≤ 65 u
مبنا — مدل پشت اعداد
هر رابطهای که شبیهساز به کار میبرد، با منبعش. ثابتهایی که بهعنوان فرض علامت خوردهاند کالیبراسیونهای نمونهایاند.
تراکنشهای جدید با نرخ پایه ضربدر جهش فروش میرسند؛ تعداد در دقیقه تصادفی است (پواسون، تقریب نرمال) با اندکی انفجارگونگی.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]فرض: تعداد اسلاتها، زمانهای سرویس و صادرکننده، جدایی امتیازها، نرخهای گذر step-up، سهم کار هدررفته، مبالغ و قیمتها مقادیری نمونه برای یک سوئیچ متوسطاند، نه ارقام هیچ شبکه واقعی.
امتیاز تقلب دوعادی (binormal): امتیازهای واقعی و تقلب دو منحنی نرمال با فاصله d′ هستند؛ آستانه نقطهای روی منحنی 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]فرض: تعداد اسلاتها، زمانهای سرویس و صادرکننده، جدایی امتیازها، نرخهای گذر step-up، سهم کار هدررفته، مبالغ و قیمتها مقادیری نمونه برای یک سوئیچ متوسطاند، نه ارقام هیچ شبکه واقعی.
آستانه بهینه از نظر هزینه: وقتی نسبت درستنمایی از نسبت هزینه وزنشده با نرخ پایه بیشتر شود رد کنید — ده برابر شدن تقلب آن را به اندازه ln 10 / d′ ≈ 0.9σ پایین میآورد.
step-up: امتیازهای نوار زیر آستانه بهجای تصمیمگیری، چالش میشوند.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]فرض: تعداد اسلاتها، زمانهای سرویس و صادرکننده، جدایی امتیازها، نرخهای گذر step-up، سهم کار هدررفته، مبالغ و قیمتها مقادیری نمونه برای یک سوئیچ متوسطاند، نه ارقام هیچ شبکه واقعی.
تأخیر صادرکننده نمایی است؛ یک اسلات به اندازه تأخیر یا مهلت، هرکدام زودتر برسد، اشغال میماند.
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]
قانون لیتل: اسلاتهای مشغول = نرخ ورود × زمان اشغال.
ارلانگ C: احتمال اینکه تراکنشی منتظر یک اسلات آزاد بماند، و احتمال اینکه بیش از مهلت صف 2 s منتظر بماند.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
فراتر از ظرفیت، سوئیچ روی درخواستهایی هم که بعداً رها میکند کار صرف میکند، پس با افزایش بار گذردهی مفید کم میشود؛ محدودسازی بار مازاد را ارزان رد میکند.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]فرض: تعداد اسلاتها، زمانهای سرویس و صادرکننده، جدایی امتیازها، نرخهای گذر step-up، سهم کار هدررفته، مبالغ و قیمتها مقادیری نمونه برای یک سوئیچ متوسطاند، نه ارقام هیچ شبکه واقعی.
تلاش مجدد مشتری: هر خطای فنی تا سه بار، فوری یا با عقبنشینی نمایی تصادفی، دوباره تلاش میشود.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]فرض: تعداد اسلاتها، زمانهای سرویس و صادرکننده، جدایی امتیازها، نرخهای گذر step-up، سهم کار هدررفته، مبالغ و قیمتها مقادیری نمونه برای یک سوئیچ متوسطاند، نه ارقام هیچ شبکه واقعی.
مهلت صادرکننده، ابطال و stand-in: مبالغ لوگنرمالاند، پس سهم زیر سقف و حجم تأییدشده از تابع توزیع نرمال به دست میآید.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
نرخ تقلب بر حسب نقطه پایه از مبلغ تأییدشده؛ 13 bp بهعنوان مقیاس مرجع برای پرداختهای کارتی کوچک از راه دور به کار میرود.
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 timeفرض: تعداد اسلاتها، زمانهای سرویس و صادرکننده، جدایی امتیازها، نرخهای گذر step-up، سهم کار هدررفته، مبالغ و قیمتها مقادیری نمونه برای یک سوئیچ متوسطاند، نه ارقام هیچ شبکه واقعی.
تصادفیبودن: یک مولد mulberry32 با seed؛ توزیعهای بهکاررفته — یکنواخت، نمایی (وارون CDF)، نرمال (Box–Muller)، پواسون (Knuth). seed نمایش داده میشود و قابل اشتراک است.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013