المقدّمة: أسباب وقت استجابة نظام أسماء النطاقات والحدّ منها
نظرًا لأن صفحات الويب أصبحت أكثر تعقيدًا، فتشير إلى موارد من نطاقات متعددة، يمكن أن تصبح عمليات بحث نظام أسماء النطاقات بمثابة مؤثرات سلبية كبيرة على تجربة التصفّح. عندما يحتاج العميل إلى طلب بحث عن برنامج تعيين نظام أسماء النطاقات عبر الشبكة، يمكن أن يكون وقت الاستجابة المقدَّم كبيرًا، بناءً على مدى القرب وخوادم الخوادم التي يجب أن يستفسر عنها برنامج التعيين (أكثر من خادمَين، نادرًا ما يحدث). على سبيل المثال، تعرض لقطة الشاشة التالية التوقيتات التي تم الإبلاغ عنها من خلال أداة قياس سرعة الصفحة على الويب. ويمثل كل شريط موردًا من الصفحة. تشير الشرائح السوداء إلى عمليات بحث نظام أسماء النطاقات. وفي هذه الصفحة، يتم إجراء 13 عملية بحث في أول 11 ثانية يتم فيها تحميل الصفحة. على الرغم من أنّه يتم إجراء العديد من عمليات البحث في الوقت نفسه، توضّح لقطة الشاشة أنّه يجب توفّر 5 أوقات بحث تسلسلية، وهو ما يعادل عدّة ثوانٍ من إجمالي وقت تحميل الصفحة الذي يبلغ 11 ثانية.
هناك مكوِّنان لوقت استجابة نظام أسماء النطاقات:
- وقت الاستجابة بين العميل (المستخدم) ونظام أسماء النطاقات الذي يحدِّد التحويل في معظم الحالات، يعود السبب في ذلك بشكل كبير إلى القيود الزمنية المعتادة ذهابًا وإيابًا في الأنظمة المتصلة بالشبكة: المسافة الجغرافية بين الأجهزة العميلة والخوادم، وازدحام الشبكة، وفقدان الحزمة، وتأخيرات إعادة الإرسال الطويلة (ثانية واحدة في المتوسط)، والخوادم الزائد، وهجمات رفض الخدمة، وما إلى ذلك.
- وقت الاستجابة بين التعامل مع الخوادم وخوادم الأسماء الأخرى
يرجع سبب وقت الاستجابة هذا إلى العوامل التالية بشكل أساسي:
- تفوت ذاكرة التخزين المؤقت. وإذا تعذّر عرض استجابة من ذاكرة التخزين المؤقت في برنامج التعيين، ولكنها تتطلب إجراء طلبات بحث متكررة مع خوادم أسماء أخرى، سيكون وقت استجابة الشبكة المُضاف مفيدًا، خاصةً إذا كانت الخوادم الموثوق بها عن بُعد مهمة.
- جارٍ الإدارة. في حال وجود زيادة في التحميل على برامج تعيين نظام أسماء النطاقات، يجب أن تضيف طلبات حلّ نظام أسماء النطاقات واستجاباته إلى قائمة الانتظار، وقد تبدأ في استبعاد الحِزم وإعادة إرسالها.
- الزيارات الضارة حتى في حال إدارة حسابات خدمة نظام أسماء النطاقات بشكلٍ زائد، يمكن أن تؤدي حركة بيانات DoS إلى وضع حمل غير ملائم على الخوادم. بالمثل، قد تتضمن هجمات "كامينسكي" برامج معالجة عن طريق الفيضانات باستخدام طلبات البحث التي من المضمون أن تتجاوز ذاكرة التخزين المؤقت وتتطلب طلبات صادرة لحلّها.
ونعتقد أن العامل الأهم لتأخُّر وقت استجابة نظام أسماء النطاقات هو السبب الأهم لذاكرة التخزين المؤقت، ونناقشه بالتفصيل أدناه.
أخطاء في ذاكرة التخزين المؤقت
حتى في حال كانت إحدى أدوات الحلّ لديها موارد محلية وافرة، من الصعب تجنُّب التأخير الأساسي المرتبط بالتحدث إلى خوادم الأسماء عن بُعد. وبعبارة أخرى، لنفترض أن برنامج التعيين مُدار بشكل كافٍ بما يكفي بحيث لا تستغرق نتائج ذاكرة التخزين المؤقت أي وقت من جهة الخادم، وتظل بيانات ذاكرة التخزين المؤقت باهظة للغاية من حيث وقت الاستجابة. للتعامل مع أي خطأ، يجب أن تتواصل أداة الحل مع خادم واحد على الأقل، ولكن غالبًا ما يكون هناك خادما أسماء خارجيان أو أكثر. عند تشغيل زاحف الويب من Googlebot، لاحظنا أن متوسط وقت الحلّ يبلغ 130 ملّي ثانية لخوادم الأسماء التي تستجيب. ومع ذلك، تنتهي مهلة 4-6% كاملة من الطلبات ببساطة، بسبب فقدان حزمة UDP وتعذر الوصول إلى الخوادم. إذا نأخذ في الاعتبار حالات تعذُّر التثبيت، مثل فقدان الحِزم أو خوادم الأسماء التالفة أو أخطاء ضبط نظام أسماء النطاقات، وما إلى ذلك، فإن متوسط المدة الفعلية للنهاية التام بين الأطراف هو 300-400 ملي ثانية، ولكن هناك تباين عالٍ وذيل طويل.
على الرغم من أنّ معدّل تفويت ذاكرة التخزين المؤقت قد يختلف بين خوادم نظام أسماء النطاقات، فإنّ عمليات تفويت ذاكرة التخزين المؤقت يصعب بشكل أساسي، للأسباب التالية:
- حجم الإنترنت ونموه. ببساطة، ومع تطوّر الإنترنت، وكذلك من خلال إضافة مستخدمين جدد ومواقع جديدة، أصبح معظم المحتوى مهمًا للغاية. وعلمًا أنّ بعض المواقع الإلكترونية (وبالتالي أسماء نظام أسماء النطاقات) رائجة جدًّا، فإن معظمها تهمّ عدد قليل من المستخدمين فقط ولا يتم الوصول إليها إلا نادرًا، لذا تؤدي معظم الطلبات إلى فقدان ذاكرة التخزين المؤقّت.
- قيمة البقاء (TTL) منخفضة. ويعني الاتجاه نحو قيم TTL أقل لنظام أسماء النطاقات أن درجات الدقة تحتاج إلى عمليات بحث أكثر تكرارًا.
- عزل ذاكرة التخزين المؤقت. عادةً ما يتم نشر خوادم نظام أسماء النطاقات خلف أجهزة موازنة الحمل التي توجّه طلبات البحث إلى أجهزة مختلفة بشكل عشوائي. ويؤدي ذلك إلى احتفاظ كل خادم فردي بذاكرة تخزين مؤقت منفصلة، بدلاً من إعادة استخدام درجات الدقة المخزّنة مؤقتًا من مساحة تخزين سحابي مشتركة.
التخفيفات
في نظام أسماء النطاقات العام من Google، طبّقنا عدة أساليب لتسريع أوقات البحث في نظام أسماء النطاقات. بعض هذه الأساليب عادية إلى حد ما، والمنهجيات الأخرى تجريبية:
- توفير المتطلبات اللازمة للخوادم للتعامل مع حمل الزيارات، بما في ذلك الزيارات الضارة.
- منع هجمات إيقاف الخدمة وتضخيمها على الرغم من أنّ هذه المشكلة في الغالب تتعلّق بمشاكل الأمان، إلا أنّها تؤثر في برامج الحلّ المُغلقة أقلّ من البرامج المفتوحة، إلا أنّ منع هجمات حجب الخدمة يعود بالنفع أيضًا على الأداء من خلال التخلّص من عبء الزيارات الإضافية على خوادم نظام أسماء النطاقات. للحصول على معلومات عن الأساليب التي نستخدمها للحد من احتمالات الهجمات، يُرجى الاطّلاع على صفحة مزايا الأمان.
- موازنة الحمل للتخزين المؤقت لتحسين معدل نتائج ذاكرة التخزين المؤقت المجمّع على مستوى مجموعة العرض.
- توفير تغطية عالمية لمدى القرب من جميع المستخدمين.
إدارة حسابات المجموعات بشكل كافٍ
يجب أن تنفّذ برامج تعيين نظام أسماء النطاقات المخزنة مؤقتًا عمليات أكثر تكلفة من خوادم الأسماء الموثوقة، لأنّه لا يمكن عرض العديد من الردود من الذاكرة، بل تتطلب بدلاً من ذلك الاتصال بخوادم أسماء أخرى، وبالتالي تتطلّب الكثير من إدخال/إخراج الشبكة. بالإضافة إلى ذلك، فإن برامج التعيين المفتوحة تكون عُرضة جدًا لمحاولات تسمم ذاكرة التخزين المؤقت، ما يزيد من معدل تفوُّت ذاكرة التخزين المؤقت (تُرسل مثل هذه الهجمات طلبات إلى أسماء زائفة لا يمكن حلها من ذاكرة التخزين المؤقت) وهجمات DoS التي تضيف إلى عبء الزيارات. إذا لم يتم توفير برامج التعيين بشكل كافٍ ولا يمكنها مواكبة الحِمل، قد يكون لذلك تأثير سلبي للغاية على الأداء. يتم إسقاط الحزم ويجب إعادة إرسالها، ويجب أن تكون طلبات خادم الأسماء في قائمة الانتظار، وهكذا. وتزيد جميع هذه العوامل عن التأخيرات.
لذلك، من المهم توفير برامج تعيين نظام أسماء النطاقات للإدخال/الإخراج الكبير الحجم. ويشمل ذلك التعامل مع هجمات حجب الخدمة (DDoS) التي لا يمكن حلّها إلّا لإدارة حسابات العملاء باستخدام أجهزة عديدة. في الوقت نفسه، من المهم عدم تقليل معدّل نتيجة ذاكرة التخزين المؤقت عند إضافة أجهزة، وهذا يتطلب تنفيذ سياسة موازنة حمل فعالة، وهذا ما نناقشه أدناه.
موازنة الحمل للتخزين المؤقت المشترك
ويمكن أن يؤدي توسيع نطاق البنية الأساسية لأداة التعيين عن طريق إضافة أجهزة إلى نتائج عكسية وخفض معدل نتيجة ذاكرة التخزين المؤقت إذا لم تتم موازنة الحمل بشكل صحيح. في عملية النشر العادية، تجلس عدة أجهزة خلف موازن تحميل يوزِّع عدد الزيارات بالتساوي على كل جهاز باستخدام خوارزمية بسيطة، مثل ترتيب دائري. ونتيجة لذلك، يحتفظ كل جهاز بذاكرة التخزين المؤقت المستقلة الخاصة به، بحيث يتم عزل المحتوى المخزن مؤقتًا على جميع الأجهزة. إذا تم توزيع كل طلب بحث وارد على جهاز عشوائي، بناءً على طبيعة حركة البيانات، يمكن زيادة معدّل تفويت ذاكرة التخزين المؤقت الفعّالة بشكل متناسب. على سبيل المثال، بالنسبة إلى الأسماء التي تتضمن مدة البقاء (TTL) الطويلة التي يتم البحث عنها بشكل متكرر، يمكن زيادة معدّل حذف ذاكرة التخزين المؤقت حسب عدد الأجهزة في المجموعة. (بالنسبة إلى الأسماء التي تتضمن مدة البقاء قصيرة جدًا، أو التي يتم البحث عنها بشكل متكرر جدًا، أو التي تؤدي إلى ردود غير قابلة للتخزين المؤقت (0 TTL وأخطاء)، لا يؤثر معدل أخطاء ذاكرة التخزين المؤقت في إضافة الأجهزة.)
لتعزيز معدل النتائج للأسماء القابلة للتخزين المؤقت، من المهم أن يتم تحميل توازن الخوادم حتى لا تكون ذاكرة التخزين المؤقت مجزأة. في نظام أسماء النطاقات العام من Google، هناك مستويان من التخزين المؤقت. في مجموعة من الأجهزة، بالقرب من المستخدم، تتضمن ذاكرة التخزين المؤقت الصغيرة لكل جهاز الأسماء الأكثر رواجًا. وإذا لم يستوفِ طلب البحث من ذاكرة التخزين المؤقت هذه، يتم إرساله إلى مجموعة أخرى من الآلات التي تقسّم ذاكرة التخزين المؤقت حسب الأسماء. بالنسبة إلى ذاكرة التخزين المؤقت من المستوى الثاني هذه، يتم إرسال جميع طلبات البحث التي تحمل الاسم نفسه إلى الجهاز نفسه، حيث يتم تخزين الاسم مؤقتًا أو لا يكون في ذاكرة التخزين المؤقت.
توزيع مجموعات العرض لتغطية مواقع جغرافية واسعة
بالنسبة إلى برامج التعيين المغلق، هذه ليست مشكلة في الواقع. بالنسبة إلى برامج التعيين المفتوحة، كلما كان الخوادم بالقرب من المستخدمين، تم تقليل وقت الاستجابة الذي سيظهر لهم في نهاية البرنامج. بالإضافة إلى ذلك، يمكن أن يؤدي التغطية الجغرافية الكافية إلى تحسين وقت الاستجابة التام بين الأطراف بشكل غير مباشر، لأن خوادم الأسماء عادةً ما تعرض نتائج محسّنة لموقع أداة تعيين نظام أسماء النطاقات. وهذا يعني أنه إذا كان موفّر المحتوى يستضيف مواقع إلكترونية منسوخة في جميع أنحاء العالم، ستعرض خوادم الأسماء الخاصة بمقدّم الخدمة هذا عنوان IP في مكان أقرب من برنامج تعيين نظام أسماء النطاقات.
تتم استضافة نظام أسماء النطاقات العام من Google في مراكز البيانات على مستوى العالم، ويستخدم توجيه أي بث لإرسال المستخدمين إلى مركز البيانات الأقرب جغرافيًا.
بالإضافة إلى ذلك، يتيح نظام أسماء النطاقات العام من Google الشبكة الفرعية لبرنامج عميل نظام أسماء النطاقات (ECS)، وهي إضافة بروتوكول نظام أسماء النطاقات لبرامج التعيين لإعادة توجيه موقع العميل إلى خوادم الأسماء، والتي يمكنها عرض استجابات حساسة للموقع محسّنة لعنوان IP الفعلي للعميل، بدلاً من عنوان IP للحلّ. يُرجى الاطّلاع على هذه الأسئلة الشائعة للحصول على التفاصيل. إنّ نظام أسماء النطاقات العام من Google يرصد تلقائيًا خوادم الأسماء التي تتوافق مع الشبكة الفرعية لعميل EDNS.