الملخص:
قامت Cloudflare مؤخرًا بتخفيض ذاكرة التخزين المؤقت التي يستخدمها محلل DNS العام 1.1.1.1 بشكل كبير، مما أدى إلى تحرير ما يقرب من 100 تيرابايت من الذاكرة عبر الشبكة بالكامل. لا يتضمن هذا التحسين استبدال أجهزة الخادم أو إزالة وحدات الذاكرة، ولكن يتم تحقيقه من خلال تحسين طريقة تخزين البرنامج للتخزين المؤقت لبيانات DNS. ص> ص>

يدور هذا العمل بشكل أساسي حول الأناناس الكبير. Big Pineapple هو نظام التخزين المؤقت الخاص بـ Cloudflare والذي يدعم محلل 1.1.1.1 وجدار حماية DNS والعديد من خدمات DNS الأخرى. قدم مهندس نظام Cloudflare، سيباستيان نيوتبوم، في مدونة فنية خمسة تعديلات على قاعدة كود Rust مما أدى إلى تقليل المساحة التي يشغلها سجل ذاكرة التخزين المؤقت لنظام أسماء النطاقات (DNS) النموذجي من 953 بايت إلى 420 بايت. ص>
تم أيضًا تحسين سرعة تشغيل النظام المُحسّنة. قالت Cloudflare أن إنتاجية إدخال ذاكرة التخزين المؤقت زادت من 625000 عنصر في الثانية إلى 893000 عنصر في الثانية، وانخفض زمن الوصول للاستعلام من 828 نانو ثانية إلى 670 نانو ثانية. على مدار عملية النشر من منتصف مايو إلى أوائل يوليو، انخفض استخدام الذاكرة المئوي التاسع والتسعين لكل مثيل من 9.3 جيجابايت إلى 5.3 جيجابايت. ص>
تدعي Cloudflare أن Big Pineapple تقوم بتخزين أكثر من 250 مليار سجل DNS في ذاكرة التخزين المؤقت في جميع الأوقات. في مثل هذا النطاق الكبير، حتى كمية صغيرة من الذاكرة المهدرة لكل سجل تصل إلى كمية كبيرة. تقدر الشركة أنه مقابل كل بايت غير ضروري مشغول في إدخال ذاكرة التخزين المؤقت، تستهلك مجموعة الخادم بأكملها أكثر من 250 جيجابايت من الذاكرة الإضافية. ص>
أحد التغييرات المهمة يتضمن نوعي Vec وString في Rust. تم تصميم هذه الحاويات للتوسع ديناميكيًا، لذلك بالإضافة إلى البيانات الفعلية، يتم حفظ معلومات إضافية مثل السعة. ومع ذلك، لا يلزم توسيع سجل DNS بعد إدخاله في ذاكرة التخزين المؤقت. ثم استبدلت Cloudflare هذه الهياكل بشرائح مربعة ذات حجم ثابت، مما أدى إلى إزالة البيانات الوصفية التي لم تعد مفيدة. ووفقا للشركة، فإن هذا التعديل وحده وفر أكثر من 15 تيرابايت من الذاكرة. ص>
أعاد المهندسون أيضًا تصميم طريقة ترتيب استجابات DNS في الذاكرة. في السابق، كان Big Pineapple يحفظ ثلاث مجموعات من قوائم السجلات لكل استجابة؛ يضع التصميم الجديد كافة السجلات في نفس المخزن المؤقت، ثم يستخدم إزاحة ثنائية البايت لتحديد موقع كل سجل. ص>
لم تعد ذاكرة التخزين المؤقت الآن تحتفظ بأسماء المالكين عندما تكون مجرد تكرارات لاسم النطاق الذي يتم الاستعلام عنه، ولكن يتم إعادة بنائها بدلاً من ذلك عند إرجاع الاستجابة. بالإضافة إلى ذلك، يقوم النظام بدلاً من ذلك بحفظ بيانات السجل باستخدام بايتات تنسيق خط DNS الأولية مع بادئة الطول، مما يحل مشكلة المساحة المهدرة في التصميمات السابقة. في السابق، كان سجل IPv4 A، الذي كان يشغل 4 بايت فقط، يستهلك 144 بايت، كما فعل سجل NAPTR النادر نسبيًا، وهو أكبر نوع سجل DNS تم تخزينه مؤقتًا بواسطة Cloudflare. يؤدي التبديل إلى تنسيق بيانات أولية متغيرة الطول إلى إلغاء الحاجة إلى سجلات أقصر لحجز نفس المساحة مثل السجلات الأطول. ص>
إن سعة الذاكرة البالغة 100 تيرابايت التي تم استعادتها بواسطة Cloudflare عبر مجموعة الخوادم بأكملها تعادل تقريبًا سعة الذاكرة لـ 130 خادمًا من الجيل الثالث عشر. تم تجهيز كل من هذه الخوادم بذاكرة DDR5-6400 بسعة 768 جيجابايت. فكرت Cloudflare في تكوين ذاكرة بسعة 1152 جيجابايت لهذا الجيل من الخوادم، لكنها استسلمت في النهاية بعد تقييم تكلفة الذاكرة ذات السعة الأعلى. ص>
باستخدام مساحة الذاكرة هذه، تخطط Cloudflare لتوسيع حجم ذاكرة التخزين المؤقت لنظام أسماء النطاقات. من المتوقع أن يؤدي الاحتفاظ بمزيد من السجلات محليًا إلى تحسين معدلات دخول ذاكرة التخزين المؤقت وتقليل حركة مرور الطلبات إلى خوادم DNS الموثوقة. ص>
هذه ليست المرة الأولى التي تقوم فيها Cloudflare بتحسين كفاءة الذاكرة على نطاق واسع. وفي العام الماضي، أعادت الشركة أيضًا كتابة طبقة FL2 المسؤولة عن معالجة الطلبات إلى كود Rust. ومع ارتفاع أسعار ذاكرة الخادم، فإن إطلاق إمكانات البنية التحتية الحالية من خلال تحسين البرامج قد يكون أكثر فعالية من حيث التكلفة من مجرد إضافة الأجهزة. ص> ص>
التعليقات