استكشاف أخطاء Azure Cache لمشكلات خادم Redis وإصلاحها

يناقش هذا القسم استكشاف الأخطاء وإصلاحها التي تسببها الظروف الموجودة على Azure Cache لخادم Redis أو أي من الأجهزة الظاهرية التي تستضيفها.

إشعار

تتضمن العديد من خطوات استكشاف الأخطاء وإصلاحها الواردة في هذا الدليل إرشادات لتشغيل أوامر Redis ومراقبة قياسات الأداء المختلفة. لمزيد من المعلومات والإرشادات، راجع المقالات الموجودة في قسم معلومات إضافية.

تحميل مرتفع من الخادم

يعني الحمل العالي للخادم أن خادم Redis مشغول وغير قادر على مواكبة الطلبات، ما يؤدي إلى انقضاء المهلات. تحقق من مقياس Server Load في ذاكرة التخزين المؤقت عن طريق تحديد Monitoring من قائمة الموارد على اليسار. ترى الرسم البياني Server Load في جزء العمل ضمن Insights. أو أضف مجموعة قياسات إلى Server Load ضمن Metrics.

فيما يلي بعض الخيارات التي تجب مراعاتها في حال تحميل الخادم العالي.

توسيع النطاق أو تضييقه

قم بالتوسع لإضافة المزيد من القطع، بحيث يتم توزيع هذا الحمل عبر عمليات Redis المتعددة. أيضاً، ضع في اعتبارك الارتقاء إلى حجم ذاكرة تخزين مؤقت أكبر مع المزيد من نوى وحدة المعالجة المركزية. لمزيد من المعلومات، راجع الأسئلة المتداولة حول تخطيط Azure Cache for Redis.

تغييرات سريعة في عدد اتصالات العميل

لمزيد من المعلومات، راجع تجنب حدوث طفرات في اتصال العميل.

أوامر تشغيل طويلة أو باهظة الثمن

تم نقل هذا القسم. لمزيد من المعلومات، راجع أوامر التشغيل لفترة طويلة.

تغيير الحجم

عمليات التحجيم هي وحدة المعالجة المركزية والذاكرة المكثفة لأنها يمكن أن تنطوي على نقل البيانات حول العقد وتغيير هيكل نظام المجموعة. لمزيد من المعلومات، راجع التحجيم.

صيانة الخادم

إذا خضعت Azure Cache for Redis إلى تجاوز الفشل، فسيتم نقل جميع اتصالات العميل من العقدة التي تعطلت إلى العقدة التي لا تزال قيد التشغيل. يمكن أن يرتفع تحميل الخادم بسبب زيادة الاتصالات. يمكنك محاولة إعادة تشغيل تطبيقات العميل الخاصة بك بحيث تتم إعادة إنشاء جميع اتصالات العميل وإعادة توزيعها بين العقدتين.

استخدام مرتفع للذاكرة

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

فيما يلي بعض الأسباب المحتملة لضغط الذاكرة:

  • تمتلئ ذاكرة التخزين المؤقت ببيانات قريبة من سعتها القصوى
  • يشهد خادم Redis تجزئة ذاكرة عالية

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

إذا كانت قيمة used_memory_rss أكبر من 1.5 مرة من قياس used_memory، فهذا يعني أن هناك تجزئة في الذاكرة. يمكن أن تسبب التجزئة مشاكل عندما:

  1. استخدام الذاكرة قريب من الحد الأقصى لذاكرة التخزين المؤقت، أو
  2. UsedMemory_RSS أعلى من الحد الأقصى للذاكرة، ما قد يؤدي إلى خطأ في الصفحة في الذاكرة.

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

يكشف Redis عن إحصائيتين، used_memory وused_memory_rss، من خلال أمر INFO الذي يمكن أن يساعدك في تحديد هذه المشكلة. يمكنك عرض هذه القياسات باستخدام المدخل.

تحقق من تعيين قيم maxmemory-reserved وmaxfragmentationmemory-reserved بشكل مناسب.

يوجد العديد من التغييرات المحتملة التي يمكنك إجراؤها للمساعدة في الحفاظ على استخدام الذاكرة بشكل سليم:

للحصول على توصيات بشأن إدارة الذاكرة، راجع أفضل الممارسات لإدارة الذاكرة.

أوامر طويلة الأمد

تم نقل هذا القسم. لمزيد من المعلومات، راجع أوامر التشغيل لفترة طويلة.

قيود النطاق الترددي من جانب الخادم

تم نقل هذا القسم. لمزيد من المعلومات، راجع قيود النطاق الترددي للشبكة.

معلومات اضافيه