مشاركة عبر


إدارة الذاكرة

مهم

أعلن Azure Cache for Redis عن الجدول الزمني للاستبعاد لجميع وحدات SKU. نوصي بنقل مثيلات Azure Cache for Redis الحالية إلى Azure Managed Redis في أقرب وقت ممكن.

لمزيد من التفاصيل حول التقاعد:

توضح هذه المقالة أفضل الممارسات لإدارة الذاكرة في ذاكرة التخزين المؤقت Azure ل Redis.

اختر نهج الإخلاء الصحيح

اختر نهج استرداد تناسب تطبيقك. النهج الافتراضي لذاكرة التخزين المؤقت Azure ل Redis هو volatile-lru، ما يعني أن المفاتيح التي لها قيمة وقت البقاء (TTL) المعينة بأمر مثل EXPIRE مؤهلة للإخلاء فقط. إذا لم يكن هناك مفاتيح لها قيمة TTL، فلن يقوم النظام بإخلاء أي مفاتيح. إذا كنت تريد أن يسمح النظام بإخلاء أي مفتاح إذا كان تحت ضغط الذاكرة، ففكر في النهج allkeys-lru .

تعيين تاريخ انتهاء صلاحية المفاتيح

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

تقليل تجزئة الذاكرة

يمكن أن تترك قيم المفاتيح الكبيرة الذاكرة مجزأة عند الإخلاء وقد تؤدي إلى استخدام ذاكرة عالية وتحميل الخادم.

مراقبة استخدام الذاكرة

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

قم بتكوين إعداد maxmemory-reserved

قم بتكوين الإعدادات المحجوزة maxmemory لزيادة استجابة النظام إلى أقصى حد. تعد إعدادات الحجز الكافية مهمة بشكل خاص لأحمال العمل كثيفة الكتابة، أو إذا كنت تخزن قيما تبلغ 100 كيلوبايت أو أكثر في ذاكرة التخزين المؤقت.

  • maxmemory-reserved يقوم الإعداد بتكوين مقدار الذاكرة، بالميغابايت لكل مثيل في نظام مجموعة، محجوز لعمليات noncache مثل النسخ المتماثل أثناء تجاوز الفشل. يتيح لك تعيين هذه القيمة الحصول على تجربة خادم Redis أكثر اتساقاً عند اختلاف التحميل.

  • maxfragmentationmemory-reserved يقوم الإعداد بتكوين مقدار الذاكرة، بالميغابايت لكل مثيل في نظام مجموعة، محجوز لاستيعاب تجزئة الذاكرة. عند تعيين هذه القيمة، تكون تجربة خادم Redis أكثر اتساقاً عندما تكون ذاكرة التخزين المؤقت ممتلئة أو قريبة من الامتلاء وتكون نسبة التجزئة عالية.

عندما تكون الذاكرة محجوزة لهذه العمليات، فإنها لا تتوفر لتخزين البيانات المخزنة مؤقتا. بشكل افتراضي عند إنشاء ذاكرة تخزين مؤقت، يتم حجز حوالي 10% من الذاكرة المتوفرة ل maxmemory-reserved، ويتم حجز 10% أخرى ل maxfragmentationmemory-reserved. يمكنك زيادة المبالغ المحجوزة إذا كان لديك أحمال الكتابة الثقيلة.

النطاقات المسموح بها ل maxmemory-reserved و ل maxfragmentationmemory-reserved هي 10%-60% من maxmemory. إذا حاولت تعيين هذه القيم على أقل من 10% أو أعلى من 60٪، تتم إعادة تقييمها وتعيينها إلى 10% كحد أدنى و60% كحد أقصى.

عند تغيير حجم نطاق ذاكرة التخزين المؤقت لأعلى أو لأسفل، يتم تغيير حجم كل من الإعدادات maxmemory-reserved و maxfragmentationmemory-reserved تلقائيًا بما يتناسب مع تغيير حجم ذاكرة التخزين المؤقت. على سبيل المثال، إذا maxmemory-reserved تم تعيين إلى 3 غيغابايت على ذاكرة تخزين مؤقت بسعة 6 غيغابايت، وقمت بالتحجيم إلى ذاكرة تخزين مؤقت بسعة 12 غيغابايت، يتم تحديث الإعداد تلقائيا إلى 6 غيغابايت أثناء التحجيم. إذا قمت بتقليص الحجم، يحدث العكس.

ضع في اعتبارك كيف قد يؤثر تغيير maxmemory-reserved قيمة حجز الذاكرة أو maxfragmentationmemory-reserved على ذاكرة التخزين المؤقت التي تحتوي على كمية كبيرة من البيانات قيد التشغيل بالفعل. على سبيل المثال، إذا كان لديك ذاكرة تخزين مؤقت 53 غيغابايت مع تعيين القيم المحجوزة إلى الحد الأدنى 10%، فإن الحد الأقصى للذاكرة المتوفرة للنظام هو 42 غيغابايت تقريبا. إذا كانت قيمك الحالية أو used_memory الحالية used_memory_rss أعلى من 42 غيغابايت، فيجب على النظام إخلاء البيانات حتى used_memory تصل إلى used_memory_rss 42 غيغابايت.

قد يزيد الاسترداد من تحميل الخادم وتجزئة الذاكرة. لمزيد من المعلومات حول مقاييس ذاكرة التخزين المؤقت مثل used_memory و used_memory_rss، راجع إنشاء المقاييس الخاصة بك.

إشعار

عند توسيع نطاق ذاكرة التخزين المؤقت لأعلى أو لأسفل برمجيا باستخدام Azure PowerShell أو Azure CLI أو REST API، يتم تجاهل أي إعدادات أو maxmemory-reserved مضمنة maxfragmentationmemory-reserved كجزء من طلب التحديث. يُكرّم تغيير التحجيم الخاص بك فقط. يمكنك تحديث إعدادات الذاكرة بعد اكتمال عملية التحجيم.