كيفية تحديد المؤثّر السلبي في الخادم وإصلاحه بسرعة وتحسين أداء الخادم ومنع أي تراجع فيه
نظرة عامة
يوضّح لك هذا الدليل كيفية حلّ مشكلة "التحميل الزائد على الخادم" في 4 خطوات:
- التقييم: حدِّد المؤثّر السلبي في الخادم.
- التحسين: يمكنك تنفيذ حلول سريعة للحدّ من التأثير.
- التحسين: يمكنك زيادة إمكانات الخادم وتحسينها.
- المراقبة: استخدِم الأدوات المبرمَجة للمساعدة في منع حدوث مشاكل في المستقبل.
تقييم
عندما تؤدي الزيارات إلى زيادة عدد عمليات الإدخال/الإخراج في الخادم، يمكن أن يصبح أحد العناصر التالية أو أكثر عائقًا: وحدة المعالجة المركزية أو الشبكة أو الذاكرة أو القرص. من خلال تحديد أيّ من هذه العوامل هو السبب الرئيسي في حدوث المشكلة، يمكن تركيز الجهود على الإجراءات الوقائية الأكثر فعالية.
- وحدة المعالجة المركزية: يجب التحقيق في استخدام وحدة المعالجة المركزية الذي يتجاوز باستمرار% 80 وإصلاحه. غالبًا ما ينخفض أداء الخادم عندما يصل استخدام وحدة المعالجة المركزية إلى %80-90 تقريبًا، ويزداد هذا الانخفاض عندما يقترب الاستخدام من %100. إنّ استخدام وحدة المعالجة المركزية لعرض طلب واحد يُعدّ ضئيلًا، ولكنّ إجراء ذلك على النطاق الذي يحدث أثناء الارتفاعات المفاجئة في عدد الزيارات يمكن أن يُثقل أحيانًا الخادم. سيؤدي نقل عرض الإعلانات إلى بنية أساسية أخرى، والحد من العمليات المُكلّفة، وحصر عدد الطلبات إلى تقليل استخدام وحدة المعالجة المركزية.
- الشبكة: خلال فترات الذروة، يمكن أن تتجاوز معدل نقل البيانات في الشبكة المطلوب لتلبية طلبات المستخدمين السعة. قد تبلغ بعض المواقع الإلكترونية أيضًا حدودًا قصوى في ما يتعلق بنقل البيانات التراكمية، وذلك استنادًا إلى مقدّم الاستضافة. سيؤدي تقليل حجم البيانات التي يتم نقلها من الخادم وإليه وكميتها إلى إزالة هذه المشكلة.
- الذاكرة: عندما لا يتوفّر للنظام ذاكرة كافية، يجب نقل البيانات إلى القرص لتخزينها. يكون الوصول إلى القرص أبطأ بكثير من الوصول إلى الذاكرة، ويمكن أن يؤدي ذلك إلى إبطاء تطبيق بأكمله. إذا نفدت الذاكرة تمامًا، يمكن أن يؤدي ذلك إلى حدوث أخطاء نفاد الذاكرة (OOM). يمكن إزالة هذه المشكلة من خلال تعديل مساحة الذاكرة المخصّصة وإصلاح أي تسرّبات في الذاكرة وترقية الذاكرة.
- الإدخال/الإخراج من القرص: يعتمد معدل قراءة البيانات أو كتابتها من القرص على القرص نفسه. إذا كانت عمليات الإدخال/الإخراج من القرص هي نقطة عرقلة، يمكن أن تؤدي زيادة مقدار البيانات المخزّنة مؤقتًا في الذاكرة إلى تخفيف هذه المشكلة (على حساب زيادة استخدام الذاكرة). إذا لم ينجح ذلك، قد يكون من الضروري ترقية الأقراص.
تركّز الأساليب الواردة في هذا الدليل على معالجة نقاط الاختناق في وحدة المعالجة المركزية والشبكة. في معظم المواقع الإلكترونية، ستكون وحدة المعالجة المركزية والشبكة هي نقاط التوقف الأكثر صلةً أثناء الارتفاع المفاجئ في عدد الزيارات.
يُعدّ تشغيل top على الخادم المتأثّر نقطة بداية جيدة لفحص نقاط الازدحام. يمكنك إضافة بيانات سابقة من مقدّم الاستضافة أو أدوات المراقبة، إن توفّرت.
توازن
يمكن أن يؤدي الخادم الذي يواجه حمولة زائدة بسرعة إلى أخطاء متسلسلة في أماكن أخرى من النظام. لذلك، من المهمّ استقرار الخادم قبل محاولة إجراء تغييرات أكثر أهمية.
تقييد معدّل الاستهلاك
تحمي ميزة "وضع حدود للمعدل" البنية الأساسية من خلال الحد من عدد الطلبات الواردة. يزداد هذا المقياس أهميةً مع تدهور أداء الخادم: فمع زيادة أوقات الاستجابة، يميل المستخدمون إلى إعادة تحميل الصفحة بشكلٍ متكرّر، ما يزيد من عبء الخادم.
إصلاح
على الرغم من أنّ رفض طلب ما ليس مكلفًا نسبيًا، فإنّ أفضل طريقة لحماية خادمك هي من خلال الحدّ من معدّل الإرسال في مكان ما قبله، على سبيل المثال، من خلال أداة موازنة التحميل أو الخادم الوكيل العكسي أو شبكة توصيل المحتوى (CDN).
التعليمات:
مراجع إضافية:
التخزين المؤقت عبر HTTP
ابحث عن طرق لتخزين المحتوى مؤقتًا بشكل أكثر فعالية. إذا كان بالإمكان عرض مورد من ذاكرة تخزين مؤقت لبروتوكول HTTP (سواء كانت ذاكرة التخزين المؤقت للمتصفح أو شبكة توصيل المحتوى)، لن يكون من الضروري طلبه من خادم المصدر، ما يقلل من عبء الخادم.
تشير عناوين HTTP، مثل Cache-Control وExpires وETag، إلى كيفية تخزين مورد معيّن مؤقتًا في ذاكرة تخزين مؤقت على HTTP. سيؤدي تدقيق هذه الرؤوس وإصلاحها إلى تحسين ميزة التخزين المؤقت.
على الرغم من أنّه يمكن أيضًا استخدام خدمة العمال لتخزين المحتوى مؤقتًا، إلا أنّها تستخدِم ذاكرة تخزين مؤقت منفصلة، وهي مكمّل لميزة التخزين المؤقت المناسب لبروتوكول HTTP وليس بديلاً عنها. لهذا السبب، عند التعامل مع خادم محمّل بشكل زائد، يجب التركيز على تحسين التخزين المؤقت لبروتوكول HTTP.
التشخيص
شغِّل Lighthouse واطّلِع على عملية التدقيق عرض مواد العرض الثابتة باستخدام سياسة ذاكرة تخزين مؤقت فعّالة للاطّلاع على قائمة بالموارد التي تتراوح مدة بقائها بين قصيرة ومتوسطة. بالنسبة إلى كلّ مورد مُدرَج، ننصحك بالتفكير في ما إذا كان يجب زيادة مدة البقاء (TTL). في ما يلي إرشادات تقريبية:
- يجب تخزين الموارد الثابتة مؤقتًا باستخدام مدة بقاء طويلة (عام واحد).
- يجب تخزين الموارد الديناميكية مؤقتًا باستخدام مدة بقاء قصيرة (3 ساعات).
إصلاح
اضبط توجيه max-age لعنوان Cache-Control على العدد المناسب من الثواني.
التعليمات:
التقليص السلس
التقليص السلس هو استراتيجية للحدّ من الوظائف مؤقتًا من أجل إزالة الحمل الزائد عن النظام. يمكن تطبيق هذا المفهوم بعدة طرق مختلفة: على سبيل المثال، عرض صفحة نصية ثابتة بدلاً من تطبيق مزوّد بميزات كاملة أو إيقاف البحث أو عرض عدد أقل من نتائج البحث أو إيقاف ميزات معيّنة باهظة الثمن أو غير ضرورية. يجب التركيز على إزالة الوظائف التي يمكن إزالتها بأمان وسهولة مع الحد الأدنى من التأثير في النشاط التجاري.
تحسين
استخدام شبكة توصيل محتوى (CDN)
يمكن نقل عرض مواد العرض الثابتة من خادمك إلى شبكة توصيل المحتوى (CDN)، ما يقلل من الحمل.
تتمثل الوظيفة الأساسية لشبكة توصيل المحتوى في عرض المحتوى للمستخدمين بسرعة من خلال توفير شبكة كبيرة من الخوادم القريبة منهم. ومع ذلك، تقدّم معظم شبكات CDN أيضًا ميزات إضافية ذات صلة بالأداء، مثل الضغط وموازنة التحميل وتحسين الوسائط.
إعداد شبكة توصيل المحتوى (CDN)
تستفيد شبكات توصيل المحتوى من التوسّع، لذا نادرًا ما يكون تشغيل شبكة توصيل المحتوى الخاصة بك منطقيًا. يمكن إعداد الإعدادات الأساسية لشبكة توصيل المحتوى (CDN) بسرعة كبيرة (30 دقيقة تقريبًا)، وتتألف من تعديل سجلات نظام أسماء النطاقات للإشارة إلى شبكة توصيل المحتوى.
تحسين استخدام شبكة توصيل المحتوى (CDN)
التشخيص
يمكنك تحديد الموارد التي لا يتم عرضها من شبكة توصيل المحتوى (CDN) (ولكن من المفترض أن يتم عرضها) من خلال تشغيل WebPageTest. في صفحة النتائج، انقر على المربّع فوق "الاستخدام الفعّال لشبكة توصيل المحتوى (CDN)" للاطّلاع على قائمة الموارد التي يجب عرضها من شبكة توصيل المحتوى (CDN).