قدم Facebook آلية TMO، مما يسمح لك بتوفير 20-32% من الذاكرة على الخوادم

نشر مهندسون من Facebook (المحظورة في الاتحاد الروسي) تقريرًا عن تنفيذ تقنية TMO (تفريغ الذاكرة الشفافة) في العام الماضي، والتي تتيح توفيرًا كبيرًا في ذاكرة الوصول العشوائي على الخوادم عن طريق إزاحة البيانات الثانوية غير المطلوبة للعمل إلى محركات أقراص أرخص، مثل NVMe أقراص SSD. تشير تقديرات Facebook إلى أن استخدام TMO يمكن أن يوفر ما بين 20 إلى 32% من ذاكرة الوصول العشوائي (RAM) على كل خادم. تم تصميم الحل للاستخدام في البنى التحتية حيث يتم تشغيل التطبيقات في حاويات معزولة. تم تضمين مكونات TMO من جانب Kernel بالفعل في Linux kernel.

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

في مساحة المستخدم، يتم توفير TMO بواسطة مكون Senpai، والذي، من خلال cgroup2، يضبط ديناميكيًا حد الذاكرة لحاويات التطبيقات بناءً على البيانات الواردة من PSI. يقوم Senpai بتحليل علامات بداية نقص الموارد عبر PSI، ويقيم حساسية التطبيقات لتباطؤ الوصول إلى الذاكرة ويحاول تحديد الحد الأدنى لحجم الذاكرة الذي تتطلبه الحاوية، والذي تظل عنده البيانات المطلوبة للتشغيل في ذاكرة الوصول العشوائي (RAM)، وما يصاحبها من معلومات البيانات المستقرة في ذاكرة التخزين المؤقت للملف أو التي لم يتم استخدامها مباشرة في الوقت الحالي، يتم إجبارها على الخروج إلى قسم المبادلة.

قدم Facebook آلية TMO، مما يسمح لك بتوفير 20-32% من الذاكرة على الخوادم

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

أحد معايير الإخلاء هو عدم إمكانية الوصول إلى صفحة الذاكرة لمدة 5 دقائق. تسمى هذه الصفحات بصفحات الذاكرة الباردة وتشكل في المتوسط ​​حوالي 35% من ذاكرة التطبيق (يوجد نطاق من 19% إلى 65%) حسب نوع التطبيق. تأخذ عملية الشفعة في الاعتبار النشاط المرتبط بصفحات الذاكرة المجهولة (الذاكرة المخصصة بواسطة التطبيق) والذاكرة المستخدمة للتخزين المؤقت للملفات (المخصصة بواسطة kernel). في بعض التطبيقات، يكون الاستهلاك الرئيسي هو الذاكرة المجهولة، ولكن في تطبيقات أخرى تكون ذاكرة التخزين المؤقت للملفات مهمة أيضًا. لتجنب اختلال توازن إزالة ذاكرة التخزين المؤقت، يستخدم TMO خوارزمية ترحيل صفحات جديدة تعمل على إزالة الصفحات المجهولة والصفحات المرتبطة بذاكرة التخزين المؤقت للملف بشكل متناسب.

إن دفع الصفحات التي لا تستخدم بشكل متكرر إلى ذاكرة أبطأ ليس له تأثير كبير على الأداء، ولكنه يمكن أن يقلل بشكل كبير من تكاليف الأجهزة. يتم مسح البيانات إلى محركات أقراص SSD أو إلى منطقة مبادلة مضغوطة في ذاكرة الوصول العشوائي (RAM). فيما يتعلق بتكلفة تخزين بايت واحد من البيانات، فإن استخدام محرك أقراص NVMe SSD أرخص بما يصل إلى 10 مرات من استخدام الضغط في ذاكرة الوصول العشوائي (RAM).

قدم Facebook آلية TMO، مما يسمح لك بتوفير 20-32% من الذاكرة على الخوادم


المصدر: opennet.ru

إضافة تعليق