عندما بحثت شركة Meta عن أداة جدولة أفضل لوحدة المعالجة المركزية Linux لأسطول خوادمها الضخم، لم تبدأ في مركز البيانات. وبدلاً من ذلك، بدأت مع جهاز كمبيوتر محمول للألعاب. في محادثة فنية أجريت مؤخرًا في مؤتمر Linux Plumbers في طوكيو، شرح مهندسو Meta كيفية نشر SCX-LAVD، وهو برنامج جدولة Linux منخفض زمن الوصول تم تطويره في الأصل بواسطة Valve for the Steam Deck، عبر خوادم الإنتاج التي تقوم بتشغيل كل شيء بدءًا من واجهات المراسلة الخلفية وحتى خدمات التخزين المؤقت. الاستنتاج المفاجئ: تبين أن برنامج الجدولة المصمم للحفاظ على استجابة الألعاب تحت الحمل مناسب بشكل ممتاز لأحمال عمل مراكز البيانات واسعة النطاق أيضًا.
على مستوى عالٍ، يقرر برنامج جدولة وحدة المعالجة المركزية البرامج التي سيتم تشغيلها على أنوية وحدة المعالجة المركزية ومتى. يجب أن تعمل أداة الجدولة الافتراضية لنظام التشغيل Linux في كل مكان — الهواتف وأجهزة الكمبيوتر المحمولة وأجهزة الكمبيوتر المكتبية والخوادم — مما يجعلها محافظة للغاية. التحدي الذي تواجهه Meta مختلف: فهو يدير أجهزة هائلة تحتوي على مئات من مراكز وحدة المعالجة المركزية، وأحمال عمل متنوعة بشكل كبير، والأهم من ذلك، أهداف زمن الوصول الصارمة. في تلك البيئة، غالبًا ما لا تكون عبارة “جيدة بما فيه الكفاية في كل مكان” جيدة بما فيه الكفاية. بدلاً من بناء برنامج جدولة مخصص لكل خدمة، أرادت Meta شيئًا أقرب إلى الإعداد الافتراضي على مستوى الأسطول، برنامج جدولة “مقاس واحد يناسب الجميع” يمكن أن يتكيف تلقائيًا دون تكوين مضبوط يدويًا. وهنا جاء دور SCX-LAVD.
يرمز LAVD في حد ذاته إلى الموعد النهائي الظاهري لـ Latency-Aware، والاسم يكشف عن اللعبة، إذا انتبهت. بدلاً من الاعتماد على الأولويات الثابتة أو التلميحات اليدوية، يراقب المجدول باستمرار كيفية عمل المهام، وعدد مرات نومها، واستيقاظها، وحظرها، ثم تقدير المهام الحساسة لزمن الوصول. تحصل هذه المهام على “مواعيد نهائية افتراضية” مبكرة، مما يزيد من فرص تشغيلها على الفور عندما يكون النظام مشغولاً.
كان الدافع وراء هذا النهج في الأصل هو الألعاب. على Steam Deck، تُترجم المواعيد النهائية للجدولة الفائتة إلى إطارات مُسقطة أو تلعثم أو استجابة بطيئة للإدخال. كما يحدث، في مركز البيانات، تظهر أوضاع الفشل نفسها كطلبات ويب بطيئة، أو رسائل متأخرة، أو أهداف مستوى الخدمة المفقودة. تطبيقات مختلفة تماما، ولكن في الأساس، نفس المشكلة الأساسية.
في العرض التقديمي، وصف مهندسو Meta العديد من التحديات التي ظهرت عندما قاموا بتوسيع نطاق LAVD إلى أجهزة من فئة الخادم. على الأجهزة التي تحتوي على عشرات النوى التي تتشارك في قائمة انتظار جدولة واحدة، أصبح التنافس بمثابة عنق الزجاجة. تسببت المهام المثبتة، وهي سلاسل عمليات لا يمكن تشغيلها إلا على نواة واحدة محددة، في حدوث تداخل غير ضروري. قضت الخدمات كثيفة الاستخدام للشبكة الكثير من الوقت في التعامل مع المقاطعات مما أدى إلى انهيار المحاسبة العادلة للمجدول.
شاهد
فرضت هذه المشكلات تغييرات على كيفية تعامل LAVD مع قوائم انتظار المهام، وشرائح الوقت، ومحاسبة وحدة المعالجة المركزية. في العديد من الحالات، أضافت Meta منطقًا للحفاظ على موقع ذاكرة التخزين المؤقت بشكل أفضل أو للتعويض عن النوى المثقلة بمقاطعات الشبكة، ومعاملتها بشكل فعال على أنها وحدات معالجة مركزية “أبطأ”. والأهم من ذلك، أن هذه الإصلاحات لم تتطلب تكوينًا لكل خدمة أو وضع علامات يدوية على الأولويات. هذا هو جوهر جاذبية LAVD لـ Meta: فهو يتكيف بناءً على السلوك الملحوظ، وليس القواعد المضمنة.
لقد تناول المهندسون أيضًا المشكلة الواضحة: هل يؤدي تحسين أداة الجدولة لخوادم Meta إلى الإضرار بحالة استخدام الألعاب الأصلية؟ ويقولون إن التغييرات حتى الآن إما محايدة أو مفيدة لـ Steam Deck، ويمكن ببساطة تعطيل الميزات التي لا تنطبق باستخدام إشارات kernel. ومع ذلك، فقد اعترفوا بأن التجربة مستمرة.
نظرًا لأن Linux أصبح الركيزة المشتركة لكل شيء بدءًا من وحدات التحكم المحمولة وحتى الخوادم فائقة الحجم، فإن الابتكارات في أحد أركان النظام البيئي تتسرب بشكل متزايد إلى زوايا أخرى. في هذه الحالة، فإن نفس منطق الجدولة الذي يساعد جهاز كمبيوتر للألعاب بقيمة 400 دولار على الشعور بالسرعة قد يساعد أيضًا في الحفاظ على تحرك مليارات الرسائل في الوقت المحدد. يعد هذا عرضًا مثاليًا لقوة البرمجيات مفتوحة المصدر، وحجة بارزة لصالح الكيفية التي يرفع بها المد المرتفع جميع القوارب.
يتبع أجهزة توم على أخبار جوجل، أو أضفنا كمصدر مفضل، للحصول على آخر الأخبار والتحليلات والمراجعات في خلاصاتك.

التعليقات