يقترح Facebook آلية جديدة لإدارة ذاكرة الألواح لنواة Linux

رومان جوشين (رومان جوشين) من الفيسبوك نشرت في القائمة البريدية لمطوري Linux kernel مجموعة من التصحيحات مع تنفيذ وحدة تحكم جديدة في تخصيص الذاكرة بلاطة (وحدة تحكم في ذاكرة البلاطة). تتميز وحدة التحكم الجديدة بنقل محاسبة اللوح من مستوى صفحة الذاكرة إلى مستوى كائن kernel، مما يجعل من الممكن مشاركة صفحات اللوح في مجموعات cgroups مختلفة، بدلاً من تخصيص ذاكرة تخزين مؤقت لوحية منفصلة لكل مجموعة cgroup.

يتيح النهج المقترح زيادة كفاءة استخدام اللوحة، وتقليل حجم الذاكرة المستخدمة للبلاطة بنسبة 30-45%، وتقليل استهلاك الذاكرة الإجمالي للنواة بشكل كبير. ومن خلال تقليل عدد الألواح غير المنقولة، هناك أيضًا تأثير إيجابي في تقليل تجزئة الذاكرة. تعمل وحدة التحكم الجديدة في الذاكرة على تبسيط التعليمات البرمجية لحساب الألواح بشكل كبير ولا تتطلب استخدام خوارزميات معقدة لإنشاء وحذف ذاكرة التخزين المؤقت للألواح بشكل ديناميكي لكل مجموعة تحكم. تستخدم جميع مجموعات الذاكرة cgroups في التطبيق الجديد مجموعة مشتركة من ذاكرات التخزين المؤقت اللوحية، ولم يعد عمر ذاكرات التخزين المؤقت اللوحية مرتبطًا بعمر تلك التي تم تثبيتها من خلال مجموعة cgroup قيود على استخدام الذاكرة.

من المفترض أن يؤدي تطبيق محاسبة الموارد الأكثر دقة في وحدة التحكم الجديدة إلى تحميل وحدة المعالجة المركزية بشكل أكبر نظريًا، ولكن في الممارسة العملية تبين أن الاختلافات غير مهمة. على وجه الخصوص، تم استخدام وحدة تحكم Slab الجديدة لعدة أشهر في خوادم Facebook الإنتاجية التي تتعامل مع أنواع مختلفة من أعباء العمل، ولم يتم تحديد أي تراجعات ملحوظة حتى الآن. في الوقت نفسه، هناك انخفاض كبير في استهلاك الذاكرة - في بعض المضيفين، كان من الممكن توفير ما يصل إلى 1 جيجابايت من الذاكرة، ولكن هذا المؤشر يعتمد بشكل كبير على طبيعة الحمل، والحجم الإجمالي لذاكرة الوصول العشوائي، وعدد وحدات المعالجة المركزية (CPU). ومميزات العمل مع الذاكرة. الاختبارات السابقة عرض تقليل استهلاك الذاكرة بمقدار 650-700 ميجابايت (42% من ذاكرة اللوحة) على الواجهة الأمامية للويب، و750-800 ميجابايت (35%) على الخادم مع ذاكرة تخزين مؤقت لنظام إدارة قواعد البيانات (DBMS) و700 ميجابايت (36%) على خادم DNS.

المصدر: opennet.ru

إضافة تعليق