برنامه ریزی ظرفیت و رشد بار
خلاصه ای کوتاه
قدرت توانایی مقاومت در برابر SLO هدف برای رشد بار مورد انتظار و شکست است. پایه:1. پیش بینی تقاضا (روند پایه + فصلی + حوادث).
2. مدل بار (مدل باز برای اینترنت).
3. بودجه و بودجه اشتباه
4. مقیاس بندی (افق/عمودی/خودکار) + محدود کننده ها (محدودیت نرخ/فشار پشتی).
5. امور مالی: $/1000 RPS، $/ms p95، TCO توسط سناریو.
شرایط و معیارها
توان عملیاتی: RPS/QPS/CPS - توان عملیاتی واقعی.
Latency p95/p99: SLO ها را برای مسیرهای کاربر هدف قرار می دهد.
اشباع: CPU/حافظه/IO/FD/اتصالات/صف بارگیری.
نرخ خطا: 5xx/timeout/429، بودجه اشتباه برای دوره.
Headroom: سهم قدرت آزاد در اوج ترافیک (توصیه می شود ≥ 30٪).
پشت سر هم: اسپایک کوتاه مدت (ثانیه/دقیقه)، اسپایک: افزایش شدید × N.
مدل های پایه و فرمول
قانون کوچک (برای سیستم های صف)
L = λ W
L میانگین تعداد درخواستها در سیستم است، λ میانگین نرخ ورود (RPS)، W میانگین زمان در سیستم است. مفید برای برآورد عمق صف.
عامل بار (ρ)
ρ = λ / μ
μ - سرعت سرویس (RPS در 100٪ CPU). هنگامی که ρ → 1، تاخیر غیر خطی را افزایش می دهد - نگه داشتن نقطه کار ρ ≤ 0. 6–0. 75.
فاکتور ایمنی/حاشیه
Capacity_required = Peak_load (1 + Headroom) Degradation_factor
جایی که Degradation_factor برای شکست N، تخریب حافظه پنهان، از دست دادن یک PoP/منطقه (به عنوان مثال، 1. 2).
پیش بینی تقاضا
1. تاریخچه: پروفایل های روز/هفته، فصلی بودن، ارتباط با رویدادها (مسابقات/جریان/پرداخت).
2. رویدادها: ضرایب سناریو (روز عادی × 1، مسابقات × 2. 3، × نهایی 3. 5).
3. منابع نوسانات: کمپین های بازاریابی، انتشار، ناهنجاری های ربات.
4. واحد پیش بینی: RPS توسط مسیرهای (ورود، لابی، کاتالوگ، پرداخت)، CPS TLS، QPS DB، IOPS دیسک، خروج Gbps.
5. اعتماد: دو سناریو را حفظ کنید - محافظه کارانه و تهاجمی.
شبیه سازی بار
مدل باز (ورود پواسون مانند): قابل قبول برای API های عمومی/وب - استفاده برای اندازه گیری.
مدل بسته (VU + زمان فکر کردن): مناسب برای توالی های داخلی ؛ ترکیب کنید.
مخلوط مسیر: کسری وزن در نقاط انتهایی ؛ شامل نه تنها «داغ»، بلکه «گران» (ثبت نام، سپرده).
فراموش نکنید: retras، صف، محدودیت شریک (PSP، API های شخص ثالث).
طراحی حاشیه ایمنی
هدف اتاق سر: ≥ 30٪ به اوج (برای اینترنت) ؛ برای هسته پرداخت و مسیرهای بحرانی - 40-50٪.
N + 1/N + 2: مقاومت در برابر شکست 1-2 نمونه/مناطق بدون نقض SLO.
چند منطقه: هر منطقه ≥ 60٪ از کل قله را می کشد (برای زنده ماندن از دست دادن یک همسایه).
حالت تنزل: غیر فعال کردن توابع ثانویه، کاهش payload، فعال کردن پاسخ کش/چاقو.
اندازه توسط لایه
شبکه/لبه
CPS/RPS در جلو، TLS-دست دادن p95، resumption≥70٪، خروج Gbps.
Anycast/Geo-routing، محدودیت CDN/WAF (موافقت در پیشبرد).
حاشیه: لینک/aplink ≥ اوج × 1. 3، SYN backlog با UDP/443 حاشیه برای H3.
متعادل کننده ها/پروکسی ها
RPS به عنوان مثال، اتصالات باز، صف، CPU/IRQ.
Keepalive و اتصال به هم - کاهش اتصالات به backends.
موجودی: ρ ≤ 0 7، محدود کننده по CPS/RPS در هر مسیر.
برنامه های کاربردی
عملکرد هدف در هر هسته (RPS/هسته) در فلات.
Pool ها (thread/DB/HTTP) - محدودیتی ندارند.
سهام: مقیاس خودکار تا CPU 60-70٪ و تاخیر ماشه (p95).
حافظه های پنهان
نسبت ضربه، حجم hotset، اخراج، ماکت.
ذخیره: حافظه ≥ 1. 2 × hotset، headroom شبکه ≥ 30٪.
پایگاه داده ها
QPS/TPM، درخواست p95، قفل، حافظه پنهان بافر، تاخیر WAL/تکرار.
IOPS و درایوهای تاخیر کلید P95 هستند.
حاشیه: نقطه عملیاتی CPU 50-65٪، تاخیر ماکت <هدف ؛ برنامه ریزی و خواندن کپی.
دیسک/ذخیره سازی
IOPS (4k/64k)، توان، هزینه fsync.
سهام: IOPS ≥ اوج × 1. 5، تاخیر p95 در پنجره هدف ؛ استخرهای جداگانه برای ورود/داده ها.
GPU/ML (اگر استنتاج آنلاین وجود دارد)
نمونه/ها، تاخیر، اتاق VRAM، دسته بندی.
حاشیه: پارامترهای دسته ای تحت بار «اره»، GPU گرم استخر.
مقیاس خودکار
HPA/KEDA: معیارهای CPU + سفارشی (تاخیر p95، RPS، صف).
استخرهای گرم: موارد پیش گرم قبل از حوادث.
گام به گام: مراحل با cooldown به طوری که به «دیدم».
زمان واکنش: هدف در T_scale ≤ 1-2 دقیقه برای لایه جلو ؛ برای DB - در پیشبرد.
محدود کننده ها و فشار پشتی
محدودیت نرخ по IP/ASN/دستگاه/مسیر ؛ سهمیه شریک
صف با TTL، امتناع «مودب» (429/از طریق خاکستری جلد) قبل از وقفه.
Idempotence: کلید برای پرداخت ؛ retrays با بودجه + jitter.
درخواست فروپاشی/SWR: آیا منشاء در طول چلپ چلوپ از خواب بیدار نیست.
نمونه ای از محاسبه سریع
با توجه به: 35k RPS API پیش بینی اوج، p95 ≤ 250 میلی ثانیه، متوسط زمان سرویس 8 میلی ثانیه در هر نمونه در 60٪ CPU → μ≈125 RPS/هسته، 8 هسته در هر نمونه → ~ 1000 RPS/نمونه.
مرحله 1 (بدون سهام): 35 نمونه.
مرحله 2 (صندلی 30٪): 35 × 1. 3 = 46.
مرحله 3 (شکست یک AZ، + 20٪): 46 × 1. 2 ≈ 55.
مرحله 4 (گرد کردن + ذخیره گرم 10٪): 61 بار.
بررسی: ρ ≈ 35k/( 61k) ≈ 0. 57 - در منطقه سبز
مدل مالی (FinOps)
$/1000 RPS توسط لایه (لبه، پروکسی، برنامه، DB).
$/ms p95 (هزینه کاهش دم).
سناریوهای TCO: on-demand vs reserved vs spot (با خطر وقفه).
طرح ظرفیت: محدودیت حساب/خوشه سه ماهه، سهمیه ابر، محدودیت PSP/CDN.
آماده برای شکست و DR
Multi-AZ/منطقه: هر بازو 60٪ بار را ≈ می کند.
طرح شکست خورده: برداشت Anycast، سوئیچینگ GSLB، TTL ≤ 60-120 ثانیه.
وابستگی های بحرانی: محدودیت های PSP/بانک، ارائه دهنده ثانویه.
تمرینات دوره ای: روز بازی با PoP/BG/cache خاموش.
سیگنال های مشاهده و اشباع اولیه
رشد p95/p99 و صف با ورودی پایدار.
افت کش نسبت به ضربه، رشد خروج مبدا.
افزایش مجدد/ECN CE، از سرگیری TLS سقوط.
رشد 429/اتمام وقت و نرخ تلاش مجدد.
برای پایگاه های داده - رشد درگیری، زمان بازرسی، WAL fsync.
عملیات عملیاتی
بررسی ظرفیت ماهانه: واقعیت در مقابل برنامه
پنجره ها را برای رویدادها تغییر دهید: هسته ها و محدودیت ها را متوقف کنید.
Prewarm (CDN/DNS/TLS/pools) 10-30 دقیقه قبل از اوج.
نسخه محدود: رفع محدودیت نرخ/استخر پیکربندی در Git.
iGaming/fintech خاص
مسابقات/مسابقات: پروفایل های اسپایک + فلات، مسیرهای خاکستری برای رباتها، محدودیت ثبت نام/سپرده جداگانه.
پرداخت/PSP: سهمیه ارائه دهنده/روش, مسیرهای جایگزین, خروج از IP استخر, SLA زمان به کیف پول.
ارائه دهندگان محتوا: توزیع توسط استودیو، کش های داغ، استخر های شارد.
Antifraud/AML: محدودیت در قوانین/به ثمر رساند، تخریب به قوانین نور در اوج.
چک لیست پیاده سازی
- پیش بینی اوج (پایه/فصل/حوادث)، دو سناریو.
- SLO/بودجه اشتباه و headroom هدف ≥ 30٪.
- اندازه لایه (لبه/پروکسی/برنامه/کش/DB/IO/شبکه).
- نرخ محدود, صف, idempotency, دوباره سعی کنید بودجه.
- HPA/KEDA + استخرهای گرم ؛ برنامه ارتقاء قبل از رویداد
- Multi-AZ/region، playbooks failover، TTL و GSLB.
- سهمیه ابر/PSP/CDN سازگار و مستند هستند.
- قابلیت مشاهده: داشبورد ظرفیت، سیگنال های اشباع اولیه.
- تمرینات DR و به طور منظم ظرفیت بررسی.
خطاهای رایج
برنامه ریزی برای RPS به طور متوسط بدون tailings/خوشه.
ρ≈0. 9 «بر روی کاغذ» - تاخیر در کوچکترین سر و صدا منفجر می شود.
نادیده گرفتن محدودیت خدمات خارجی (PSP/CDN/DB خوشه).
هیچ حالت تنزل وجود ندارد و backpressure شکست می خورد.
مقیاس خودکار بدون پیش گرم کردن - مدیریت «پس از» اوج.
Headroom تک برای تمام لایه ها - مهاجرت تنگنا.
کتاب های مینی
قبل از رویداد اوج (T-30 دقیقه)
1. minReplicas/HPA هدف را افزایش دهید، استخر گرم را فعال کنید.
2. گرم کردن CDN/DNS/TLS/اتصالات، گرم کردن انبارها.
3. بالا بردن محدودیت استخر PSP و سهمیه به عنوان توافق.
4. مسیرهای خاکستری/فیلترهای ربات، نقاط انتهایی سنگین باریک را روشن کنید.
از دست دادن بخشی از منطقه
1. GSLB → منطقه همسایه، TTL 60-120 ثانیه.
2. فعال کردن حالت تنزل (کش/پرداخت ساده).
3. محدودیت های PSP/خروج از IP را دوباره توزیع کنید.
4. ارتباطات وضعیت، کنترل p95/خطا.
افزایش در عقب نشینی
1. کاهش بودجه مجدد، فعال کردن عقب نشینی + jitter.
2. فعالسازی فروپاشی درخواست/SWR روی GET.
3. به طور موقت محدودیت نرخ را برای ASN های «پر سر و صدا» سفت کنید.
نتیجه گیری
برنامه ریزی ظرفیت پیش بینی تقاضا + مدل مهندسی + حاشیه ایمنی + اهرم های عملیاتی است. SLO و headroom را رسمی کنید، محدودیت های خارجی را در نظر بگیرید، مقیاس بندی و تخریب خودکار را اندازه گیری کنید، «هزینه در هر میلی ثانیه» را اندازه گیری کنید و بررسی ظرفیت منظم را انجام دهید. سپس افزایش بار به یک ریسک تبدیل نمی شود، بلکه به یک معیار تجاری قابل کنترل تبدیل می شود.