فیسبوک زمانبند لینوکس استیم دک را در مراکز داده خود به کار میگیرد
هنگامی که متا به دنبال یک زمانبند CPU لینوکس بهتر برای ناوگان عظیم سرورهای خود بود، کار را از مرکز داده شروع نکرد. در عوض، با یک کامپیوتر بازی دستی آغاز کرد. در یک سخنرانی فنی اخیر در کنفرانس Linux Plumbers در توکیو، مهندسان متا جزئیات چگونگی استقرار SCX-LAVD، یک زمانبند لینوکس با تأخیر کم که در ابتدا توسط Valve برای استیم دک توسعه یافته بود، در سرورهای تولیدی که همه چیز از بکاند پیامرسانی گرفته تا سرویسهای کش را اجرا میکنند، توضیح دادند. نتیجه شگفتانگیز: یک زمانبند طراحی شده برای حفظ پاسخگویی بازیها تحت بار، برای بارهای کاری مراکز داده در مقیاس بزرگ نیز بسیار مناسب است.
در سطح بالا، یک زمانبند CPU تصمیم میگیرد که کدام برنامهها روی کدام هستههای CPU و چه زمانی اجرا شوند. زمانبند پیشفرض لینوکس باید در همه جا کار کند — تلفنها، لپتاپها، دسکتاپها، سرورها — که آن را بسیار محافظهکار میکند. چالش متا متفاوت است: این شرکت ماشینهای عظیمی با صدها هسته CPU، بارهای کاری بسیار متنوع و مهمتر از همه، اهداف تأخیر سختگیرانه را اجرا میکند. در چنین محیطی، “به اندازه کافی خوب در همه جا” اغلب کافی نیست. به جای ساخت یک زمانبند سفارشی برای هر سرویس، متا چیزی نزدیکتر به یک پیشفرض در سطح ناوگان میخواست، یک زمانبند “یک اندازه برای اکثر موارد” که بتواند به طور خودکار بدون پیکربندی دستی تنظیم شود. اینجا بود که SCX-LAVD وارد شد.
SCX-LAVD بر پایه sched_ext ساخته شده است، یک چارچوب نسبتاً جدید لینوکس که زمانبندهای جایگزین را قادر میسازد بدون تغییرات قابل توجه در هسته، به آن متصل شوند. به زبان ساده، sched_ext به شرکتها اجازه میدهد تا استراتژیهای زمانبندی مختلف را به صورت ایمن و تدریجی آزمایش کنند، به جای فورک کردن لینوکس یا نگهداری مجموعههای پچ عظیم.
LAVD خود مخفف Latency-Aware Virtual Deadline (مهلت مجازی حساس به تأخیر) است، و اگر دقت کنید، نام آن همه چیز را لو میدهد. به جای تکیه بر اولویتهای ثابت یا راهنماییهای دستی، زمانبند به طور مداوم نحوه رفتار وظایف، میزان خوابیدن، بیدار شدن و مسدود شدن آنها را مشاهده میکند و سپس تخمین میزند که کدام یک به تأخیر حساس هستند. این وظایف “مهلتهای مجازی” زودتری دریافت میکنند و شانس اجرای سریع آنها را در زمانی که سیستم مشغول است، افزایش میدهند.
این رویکرد در ابتدا با انگیزه بازی توسعه یافت. در استیم دک، از دست دادن مهلتهای زمانبندی به معنای افت فریم، لکنت یا پاسخ ورودی کند است. همانطور که اتفاق میافتد، در یک مرکز داده، همین حالتهای شکست به صورت درخواستهای وب کند، پیامهای تأخیری یا عدم دستیابی به اهداف سطح سرویس ظاهر میشوند. برنامههای کاملاً متفاوت، اما اساساً، همان مشکل زمینهای.
در این ارائه، مهندسان متا چندین چالش را که هنگام مقیاسبندی LAVD به سختافزار کلاس سرور پدیدار شد، توصیف کردند. در ماشینهایی با دهها هسته که یک صف زمانبندی واحد را به اشتراک میگذارند، رقابت به یک گلوگاه تبدیل شد. وظایف پین شده، که رشتههایی هستند که فقط میتوانند روی یک هسته خاص اجرا شوند، تداخل غیرضروری ایجاد کردند. سرویسهای پرمصرف شبکه آنقدر زمان صرف مدیریت وقفهها میکردند که حسابداری عدالت زمانبند از بین رفت.
این مسائل تغییراتی را در نحوه مدیریت صفوف وظایف، برشهای زمانی و حسابداری CPU توسط LAVD تحمیل کرد. در چندین مورد، متا منطقی را برای حفظ بهتر محلیسازی کش یا جبران هستههایی که توسط وقفههای شبکه تحت فشار قرار گرفته بودند، اضافه کرد و عملاً آنها را به عنوان CPUهای “کندتر” در نظر گرفت. نکته مهم این است که این اصلاحات نیازی به پیکربندی برای هر سرویس یا برچسبگذاری دستی اولویت نداشتند. این جذابیت اصلی LAVD برای متا است: بر اساس رفتار مشاهده شده تطبیق مییابد، نه قوانین سختکد شده.
مهندسان همچنین به نگرانی آشکار پرداختند: آیا بهینهسازی یک زمانبند برای سرورهای متا خطر آسیب رساندن به مورد استفاده اصلی آن در بازی را دارد؟ آنها میگویند تاکنون، تغییرات یا خنثی بودهاند یا برای استیم دک مفید، و ویژگیهایی که کاربرد ندارند را میتوان به سادگی با پرچمهای هسته غیرفعال کرد. با این حال، آنها اعتراف کردند که این آزمایش در حال انجام است.
همانطور که لینوکس به بستر مشترک برای همه چیز از کنسولهای دستی گرفته تا سرورهای هایپراسکیل تبدیل میشود، نوآوریها در یک گوشه از اکوسیستم به طور فزایندهای به سایر بخشها سرایت میکنند. در این مورد، همان منطق زمانبندی که به یک کامپیوتر بازی ۴۰۰ دلاری کمک میکند تا سریع باشد، ممکن است به جابجایی میلیاردها پیام در زمان مناسب نیز کمک کند. این یک نمایش عالی از قدرت نرمافزار متنباز و یک استدلال برجسته در حمایت از این است که چگونه یک موج رو به بالا همه قایقها را بالا میبرد.
- کولبات
- دی 2, 1404
- 44 بازدید






