طريقة إدارة الذاكرة الجديدة على Facebook

أحد أعضاء فريق تطوير الشبكات الاجتماعية فيسبوك, رومان جوشين، اقترحت في القائمة البريدية للمطورين مجموعة من تصحيحات نواة لينكستهدف إلى تحسين إدارة الذاكرة من خلال تنفيذ وحدة تحكم جديدة لإدارة الذاكرة - بلاطة (وحدة تحكم في ذاكرة البلاطة).

توزيع بلاطة هي آلية لإدارة الذاكرة مصممة لتخصيص الذاكرة بشكل أكثر كفاءة والقضاء على التجزئة الكبيرة. أساس هذه الخوارزمية هو تخزين الذاكرة المخصصة التي تحتوي على كائن من نوع معين وإعادة استخدام تلك الذاكرة في المرة التالية التي يتم تخصيصها فيها لكائن من نفس النوع. تم تقديم هذه التقنية لأول مرة في نظام التشغيل SunOS بواسطة Jeff Bonwick، وهي تُستخدم الآن على نطاق واسع في نواة العديد من أنظمة التشغيل Unix، بما في ذلك FreeBSD وLinux.

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

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

تم اختبار وحدة التحكم الجديدة على خوادم Facebook الإنتاجية لعدة أشهر، وحتى الآن يمكن وصف هذا الاختبار بأنه ناجح: مع عدم وجود خسارة في الأداء وعدم زيادة في عدد الأخطاء، وقد لوحظ انخفاض واضح في استهلاك الذاكرة - في بعض خوادم تصل إلى 1 جيجابايت. هذا الرقم شخصي تمامًا، على سبيل المثال، أظهرت الاختبارات السابقة نتائج أقل قليلاً:

  • 650-700 ميجابايت على واجهة الويب
  • 750-800 ميجا بايت على الخادم مع ذاكرة تخزين مؤقت لقاعدة البيانات
  • 700 ميجابايت على خادم DNS

>>> صفحة المؤلف على جيثب


>>> نتائج الاختبار المبكرة

المصدر: linux.org.ru

إضافة تعليق