پرش به محتوای اصلی
پرش به محتوای مقاله

بودجه‌بندی مجدد تلاش‌های تکراری؛ راهکار Arc Ops برای جلوگیری از فروپاشی سیستم

·۱ شهریور ۱۴۰۵۳ دقیقه مطالعه
کاهش ۱۰ تیک فقط ۶۰۰ درخواست را از دست داد؛ تلاش‌های مجدد بدون بودجه ۴۵۴۳ شکست خورد، و ۲۹۸۹ مورد پس از رفع علت.
کاهش ۱۰ تیک فقط ۶۰۰ درخواست را از دست داد؛ تلاش‌های مجدد بدون بودجه ۴۵۴۳ شکست خورد، و ۲۹۸۹ مورد پس از رفع علت.
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

اثبات ریاضی و شبیه‌سازی‌شده‌ی این موضوع که بودجه تکرار (Retry Budget) تنها راه جلوگیری از شکست‌های متاستابل (Metastable Failures) است، در حالی که روش‌های رایج مثل Jitter در مقیاس بالا ناکارآمد هستند.

۴۵۴۳ درخواست با شکست مواجه شدند؛ یعنی تقریباً ۷.۵ برابر بیشتر از آنچه در یک افت ظرفیت معمولی انتظار می‌رود. در حالی که این افت ظرفیت تنها باید ۶۰۰ درخواست را تحت تأثیر قرار می‌داد، اما طبق داده‌های منتشر شده در ۲۳ اوت ۲۰۲۶ توسط Arc Ops، یک افت ظرفیت کوتاه در ۱۰ بازه زمانی (Tick)، به‌دلیل تکرارهای بدون بودجه (Unbudgeted Retries) به یک حلقه بازخورد مخرب و در نهایت یک قطعی گسترده تبدیل شد.

تصور کنید در یک کافه شلوغ، دستگاه اسپرسو برای ۵ دقیقه کند می‌شود. به‌جای منتظر ماندن، هر مشتری که نوشیدنی‌اش را بلافاصله دریافت نکرده، مدام و پشت‌سرهم سفارش خود را تکرار می‌کند. حتی پس از اینکه دستگاه درست می‌شود، کارکنان چنان غرق در کوهی از درخواست‌های تکراری و انباشته شده هستند که نمی‌توانند به مشتریان جدید خدمات دهند؛ این‌گونه یک اختلال کوتاه به هرج‌ومرج صبحگاهی تبدیل می‌شود.

Arc Ops این سناریو را با استفاده از یک شبیه‌ساز مرورگر مستقل با ۱۰۰ قصد (Intent) در هر بازه و ظرفیت ۱۲۰ مورد آزمایش کرد. وقتی ظرفیت برای ۱۰ بازه به ۴۰ کاهش یافت، نتایج بسته به استراتژی تکرار به‌شدت متفاوت بود:

  • بدون بودجه (گروه کنترل): ۴۵۴۳ درخواست شکست خورد؛ از این تعداد، ۲۹۸۹ مورد حتی پس از رفع علت اصلی شکست خوردند و این امر باعث شد قطعی تا ۳۹ بازه طولانی شود.
  • با بودجه (نسبت ۰.۱۰): تنها ۷۳۰ درخواست شکست خورد و سیستم فوراً (در ۰ بازه اضافی) بازیابی شد.
  • بودجه + مدارشکن (Circuit Breaker): ۱۲۲۴ درخواست شکست خورد اما بازیابی در ۲ بازه رخ داد.

همان‌طور که در تحلیل‌های قبلی ما درباره‌ی پایداری زیرساخت‌های توزیع‌شده اشاره کردیم، مدیریت ترافیک در لحظات بحرانی حیاتی است. این شبیه‌سازی ثابت می‌کند که تعیین محدودیت تکرار برای هر فراخوانی (مثلاً max_retries: 3) خطرناک است، زیرا تعداد خطاها را در تعداد کل کلاینت‌ها ضرب می‌کند و بار سیستم را به شدت افزایش می‌دهد. در مقابل، بودجه تکرار که به‌عنوان کسری از ترافیک موفق تعریف می‌شود، بار کل ناوگان (Fleet Load) را فارغ از تعداد کلاینت‌ها، در سطح ۱.۱ برابر حالت عادی محدود می‌کند.

با این حال، داده‌ها یک موازنه متناقض را فاش می‌کنند. در حالی که بودجه تکرار مانع از فروپاشی کامل سیستم می‌شود، اما در واقع تعداد درخواست‌های حذف‌شده (Dropped Intents) را برای برخی کاربران افزایش می‌دهد. در حالت کنترل (بدون بودجه)، سیستم در نهایت تمام درخواست‌ها را نجات می‌دهد، اما این کار را با تحمیل ۳۸۰۰ شکست اضافی به ترافیکی انجام می‌دهد که هرگز بخشی از حادثه اصلی نبودند. این پدیده یادآور مکانیزم‌های خودترمیمی در سیستم‌هاست که گاهی با پنهان کردن خطاهای حیاتی، ریشه اصلی مشکل را نامرئی می‌کنند.

این تغییر در رویکرد عملی نشان می‌دهد که هدف از بودجه تکرار، کوچک کردن ابعاد حادثه نیست، بلکه تصمیم‌گیری درباره این است که «چه کسی هزینه را بپردازد». این استراتژی سلامت سرویس وابسته (Dependency) را به قیمت شکست درخواست‌های خاص تضمین می‌کند.

علاوه بر این، یافته‌های Arc Ops باورهای رایج درباره لرزش (Jitter) و مدارشکن‌ها را به چالش می‌کشد. لرزش کامل (Full Jitter) به‌تنهایی نتوانست پیک‌های ترافیکی را در شرایطی که ۲۰۰ کلاینت به‌طور هم‌زمان شکست می‌خوردند، جذب کند. همچنین مدارشکن‌ها بیش از حد سخت‌گیرانه و «کُند» عمل کردند؛ به‌طوری که وقتی یک سرویس وابسته ۳۰٪ دچار مشکل بود، مدارشکن ۱۰۰٪ ترافیک را قطع کرد و باعث شد پاسخ‌های سالم و قابل استفاده دور ریخته شوند.

توسعه‌دهندگان می‌توانند این مکانیسم‌ها را از طریق مخزن عمومی Arc Ops در گیت‌هاب (تحت لایسنس MIT) بررسی کنند. این مخزن شامل ۲۳۸ مورد تست pytest است تا حالت‌های شکست را بدون نیاز به شبکه یا مدل واقعی اعتبارسنجی کند.

گام بعدی شما

  • بررسی مخزن عمومی Arc Ops در گیت‌هاب برای دسترسی به ۲۳۸ مورد تست pytest جهت اعتبارسنجی حالت‌های شکست.
  • جایگزینی محدودیت‌های max_retries با مدل بودجه‌بندی در سرویس‌های با ترافیک بالا.
  • بازنگری در تنظیمات مدارشکن‌ها برای جلوگیری از حذف ترافیک سالم.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این یافته‌ها بر اساس تجربه عملی در شبیه‌سازی‌های فشار، استانداردهای طراحی سیستم‌های توزیع‌شده را تغییر می‌دهد. مهندسان اکنون متوجه می‌شوند که سیاست‌های تکرار ساده می‌توانند به‌جای کمک، به عنوان یک حمله DoS داخلی علیه سیستم خودشان عمل کنند.

تأثیر برای ایران

برای توسعه‌دهندگان ایرانی که با محدودیت منابع سخت‌افزاری در مراکز داده داخلی دست‌وپنجه نرم می‌کنند، پیاده‌سازی بودجه تکرار راهکاری کم‌هزینه برای افزایش پایداری سرویس‌ها بدون نیاز به ارتقای سخت‌افزار است.

·نگاه ما
تحریریه دات‌هوش

تغییر پارادایم از «تلاش برای نجات هر درخواست» به «حفاظت از سلامت کل سیستم» نشان می‌دهد که در مقیاس‌های بزرگ، پذیرش شکست‌های جزئی تنها راه جلوگیری از فاجعه است. این رویکرد، مفهوم پایداری را از یک مسئله فنی به یک تصمیم مدیریتی تبدیل می‌کند که در آن باید بین تجربه کاربر فردی و دسترسی جمعی موازنه کرد.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.