BudgetFunnel: Coarse-to-Fine Global Budget Allocation for Trace-Driven Serverless Cold-Start Mitigation
يُعد BudgetFunnel إطار عمل يعتمد على التتبع، ينتقل من المستوى العام إلى التفصيلي، ويقوم بتخصيص ميزانية مشتركة للاحتفاظ الدافئ عبر وظائف خادمية (serverless) غير متجانسة باستخدام فحص خفيف الوزن ومخصص جشع مدرك للأسبقية، محققاً بذلك تخفيفاً شبه مثالي لبداية التشغيل البارد مع تقليل كبير في عبء التقييم مقارنة بالتقييم الكامل واستراتيجيات الخط الأساسي الحالية.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
في السحابة الحديثة، تعمل مجموعة هائلة من التطبيقات وفق نموذج يُسمى الحوسبة بدون خادم (serverless computing). وبدلاً من إبقاء خادم كمبيوتر يعمل باستمرار للتعامل مع الطلبات، يقوم النظام بإيقاظ بيئة جديدة وفارغة فقط عندما يحتاجها مستخدم ما، ثم يؤدي المهمة، وبعد ذلك يتركها لتنام. يوفر هذا النهج المال ويقلل الهدر، ولكنه يعاني من عيب محبط: في المرة الأولى التي يطلب فيها مستخدم خدمة ما، يجب على النظام بناء تلك البيئة من الصقة. وتتسبب هذه العملية، المعروفة باسم "البداية الباردة" (cold start)، في تأخير ملحوظ. ولإصلاح ذلك، يمكن لمديري الأنظمة إبقاء بعض هذه البيئات مستيقظة وجاهزة، وهي استراتيجية تُسمى "التحمية المسبقة" (prewarming). ومع ذلك، فإن إبقاء الكثير من البيئات مستيقظة يهدر الموارد ذاتها التي صُمم النظام لتوفيرها. ويكمن التحدي في تحديد أي الوظائف يجب إبقاؤها دافئة ولأي مدة، خاصة عندما تتنافس آلاف الوظائف المختلفة على مجموعة محدودة من الموارد.
لقد طور الباحثون طريقة جديدة تسمى BudgetFunnel لحل هذه المعضلة. وتتمثل الفكرة الجوهرية في التعامل مع إجمالي الوقت المتاح لإبقاء البيئات مستيقظة كـ "ميزانية مشتركة" يجب إنفاقها بحكمة عبر عبء عمل ضخم. في نظام سحابي نموذجي، قد توجد آلاف الوظائف المختلفة، لكل منها نمط استخدام فريد خاص بها؛ فبعضها يُستخدم باستمرار، بينما البعض الآخر يُستخدم نادراً أو في موجات مفاجئة وغير متوقعة. وإذا حاول مدير النظام حساب "وقت الإبقاء حياً" المثالي لكل وظيفة على حدة لتقليل التأخيرات، فإن عملية الحساب نفسها ستستغرق وقتاً طويلاً لدرجة تجعلها غير عملية. يعالج BudgetFunnel هذا الأمر باستخدام عملية من خطوتين تقوم أولاً بتصفية المشكلة وتقليصها إلى أجزائها الأكثر أهمية.
اختبر الباحثون طريقتهم باستخدام سجلات بيانات واقعية من اثنين من مزودي الخدمات السحابية الكبار، أحدهما من Microsoft Azure والآخر من Alibaba. احتوت هذه السجلات على ملايين السجلات التي توضح متى تم استدعاء الوظائف المختلفة. استخدم الفريق أولاً فحصاً بسيطاً وسريعاً لتحديد الوظائف التي يُحتمل أن تسبب أكبر قدر من التأخير إذا سُمح لها بأن تصبح باردة. لقد نظروا في أنماط أساسية، مثل عدد مرات استخدام الوظيفة، ومدى عدم انتظام استخدامها، وما إذا كانت تتبع إيقاعاً يومياً. وبناءً على هذه القرائن البسيطة، اختاروا فقط أفضل عشرة بالمائة من الوظائف كـ "مرشحين" للتحليل التفصيلي، بينما تُرِك التسعون بالمائة المتبقية مع إعداد افتراضي قدره صفر، مما يعني أن النظام لن يحاول إبقاءهم دافئين.
بمجرد تحديد المرشحين، أجرى الباحثون محاكاة تفصيلية على هذه المجموعة الصغيرة فقط. واختبروا مددًا مختلفة لإبقاء هذه الوظائف المحددة مستيقظة، وحسبوا بدقة مقدار التأخير الذي سيتم توفيره مقابل تكلفة الموارد التي ستتكبد لكل خيار. وأخيراً، استخدموا خوارزمية جشعة (greedy algorithm) لتوزيع ميزانية "الوقت الدافئ" الإجمالية المتاحة بين هؤلاء المرشحين. عملت هذه الخوارمة مثل متسوق حذر لديه مبلغ ثابت من المال، يختار التحسينات التي تقدم أكبر تقليل في التأخيرات مقابل أقل تكلفة. وكانت النتيجة خطة مخصصة حددت أوقات إبقاء محددة للوظائف الأكثر أهمية مع تجاهل البقية.
أظهرت النتائج أن هذا النهج المركز كان فعالاً بشكل ملحوظ. فمن خلال تقييم عشرة بالمائة فقط من الوظائف، حقق النظام زيادة في السرعة بمقدار تسع مرات مقارنة بمحاولة حساب أفضل الإعدادات لكل وظيفة. وبالرغم من هذا الانخفاض الهائل في وقت الحساب، ظلت جودة النتيجة عالية جداً؛ حيث ظل عدد الطلبات المتأخرة، مقاساً كنسبة مئوية من إجمالي حركة المرور، ضمن نطاق 1.54 في المائة فقط من النتيجة التي أنتجها نهج التقييم الكامل (الذي يحلل جميع الوظائف) في بيانات Azure، وضمن نطاق 1.93 في المائة في بيانات Alibaba. بعبارة أخرى، حافظ النظام على جميع فوائد الأداء المحتملة تقريباً مع تجنب التكلفة الحسابية الثقيلة لتحليل كل شيء.
كما قارنت هذه الدراسة طريقتهم بالاستراتيجيات الشائعة الأخرى، مثل إبقاء جميع الوظائف دافئة لنفس المدة الثابتة أو استخدام متوسط أوقات الانتظار لتخمين المدة المطلية. وقد تفوق BudgetFunming بشكل كبير على هذه الأساليب القياسية، حيث قلل معدل البدايات الباردة بنسبة تصل إلى 39 بالمائة في عبء عمل Alibaba. وأكد الباحثون أن طريقتهم قوية (robust)، بمعنى أنها تعمل بشكل جيد حتى عندما قاموا بتغيير طريقة عد التأخيرات أو تعديل الفترات الزمنية المحددة التي تم اختبارها. كما تحققوا من أن الخوارزمية الجشعة التي استخدموها كانت قريبة جداً من الحل الأمثل رياضياً للحالات الاختبارية الأصغر، حيث اختلفت بأقل من 2.6 في المائة عن الحد الأمثل المعتمد.
يُظهر هذا العمل أنه في الأنظمة المعقدة، غالباً ما يكون من الممكن إيجاد حل قريب من الأمثل دون فحص كل تفصيل صغير. فمن خلال استخدام مرشح عام لتحديد العناصر الأكثر أهمية، ثم تطبيق تحليل تفصيلي فقط حيثما يهم الأمر، يمكن للمديرين إدارة الموارد بكفاءة دون الغرق في حسابات مستحيلة. توفر إطار عمل BudgetFunnel طريقة عملية لإبقاء التطبيقات السحابية سريعة واستجابية دون استنزاف الميزانية، مما يثبت أن القليل من التصفية الذكية يمكن أن يقطع شوطاً طويلاً في إدارة الآلات غير المرئية للسحابة.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.