نظرة عامة على ذاكرة التخزين المؤقت المحلية لخدمة تطبيقات Azure
ملاحظة
ذاكرة التخزين المؤقت المحلية غير مدعومة في تطبيقات الوظائف أو تطبيقات خدمة التطبيقات في حاويات، مثل حاويات Windows أو في خدمة التطبيقات على Linux. إصدار من ذاكرة التخزين المؤقت المحلية المتوفرة لأنواع التطبيقات هذه هو ذاكرة التخزين المؤقت للتطبيقات.
يتم تخزين محتوى Azure App Service على Azure Storage ويتم عرضه بطريقة متينة كمشاركة محتوى. يهدف هذا التصميم إلى العمل مع مجموعة متنوعة من التطبيقات ويحتوي على السمات التالية:
- تتم مشاركة المحتوى عبر مثيلات متعددة للجهاز الظاهري (VM) للتطبيق.
- المحتوى متين ويمكن تعديله عن طريق تشغيل التطبيقات.
- تتوفر ملفات السجل وملفات البيانات التشخيصية ضمن نفس مجلد المحتوى المشترك.
- يؤدي نشر محتوى جديد إلى تحديث مجلد المحتوى مباشرة. يمكنك عرض المحتوى نفسه على الفور من خلال موقع SCM على الويب والتطبيق قيد التشغيل (عادة ما تبدأ بعض التقنيات مثل ASP.NET في إعادة تشغيل التطبيق على بعض تغييرات الملفات للحصول على أحدث محتوى).
على الرغم من أن العديد من التطبيقات تستخدم واحدة أو كل هذه الميزات ، إلا أن بعض التطبيقات تحتاج فقط إلى متجر محتوى عالي الأداء للقراءة فقط يمكنها تشغيله من خلال التوافر العالي. يمكن أن تستفيد هذه التطبيقات من مثيل VM لذاكرة تخزين مؤقت محلية محددة.
توفر ميزة ذاكرة التخزين المؤقت المحلية لخدمة تطبيقات Azure طريقة عرض دور ويب للمحتوى الخاص بك. هذا المحتوى عبارة عن ذاكرة تخزين مؤقت للكتابة ولكن يتم تجاهلها لمحتوى التخزين الخاص بك والذي يتم إنشاؤه بشكل غير متزامن في بدء التشغيل في الموقع. عندما تكون ذاكرة التخزين المؤقت جاهزة، يتم تبديل الموقع للتشغيل مقابل المحتوى المخزن مؤقتا. تتمتع التطبيقات التي تعمل على ذاكرة التخزين المؤقت المحلية بالمزايا التالية:
- فهي محصنة ضد زمن الوصول الذي يحدث عند الوصول إلى المحتوى على Azure Storage.
- فهي محصنة ضد الترقيات المخطط لها أو أوقات التوقف غير المخطط لها وأي اضطرابات أخرى في Azure Storage تحدث على الخوادم التي تخدم مشاركة المحتوى.
- لديهم عدد أقل من عمليات إعادة تشغيل التطبيق بسبب تغييرات مشاركة التخزين.
كيفية تغيير ذاكرة التخزين المؤقت المحلية لسلوك App Service
- يشير D:\home إلى ذاكرة التخزين المؤقت المحلية، التي يتم إنشاؤها على مثيل الجهاز الظاهري عند بدء تشغيل التطبيق. يستمر D:\local في الإشارة إلى التخزين المؤقت الخاص ب VM.
- تحتوي ذاكرة التخزين المؤقت المحلية على نسخة لمرة واحدة من مجلدات /site و/siteextensions الخاصة بمخزن المحتوى المشترك، في D:\home\siteوD:\home\siteextensions، على التوالي. يتم نسخ الملفات إلى ذاكرة التخزين المؤقت المحلية عند بدء تشغيل التطبيق. يقتصر حجم المجلدين لكل تطبيق على 1 غيغابايت بشكل افتراضي، ولكن يمكن زيادته إلى 2 غيغابايت. لاحظ أنه مع زيادة حجم ذاكرة التخزين المؤقت ، سيستغرق تحميل ذاكرة التخزين المؤقت وقتا أطول. إذا قمت بزيادة حد ذاكرة التخزين المؤقت المحلية إلى 2 غيغابايت وتجاوزت الملفات المنسوخة الحد الأقصى لحجم 2 غيغابايت، فإن App Service تتجاهل بصمت ذاكرة التخزين المؤقت المحلية وتقرأ من مشاركة الملفات عن بعد. إذا لم يكن هناك حد محدد أو تم تعيين الحد إلى أي شيء أقل من 2 غيغابايت وتجاوزت الملفات المنسوخة الحد، فقد يفشل النشر أو المبادلة بسبب حدوث خطأ.
- ذاكرة التخزين المؤقت المحلية هي القراءة والكتابة. ومع ذلك، يتم تجاهل أي تعديل عند نقل التطبيق للأجهزة الظاهرية أو إعادة تشغيله. لا تستخدم ذاكرة التخزين المؤقت المحلية للتطبيقات التي تخزن البيانات المهمة في مخزن المحتوى.
- D:\home\LogFiles و D:\home\Data تحتوي على ملفات السجل وبيانات التطبيق. يتم تخزين المجلدين الفرعيين محليا على مثيل الجهاز الظاهري، ويتم نسخهما إلى مخزن المحتوى المشترك بشكل دوري. يمكن للتطبيقات الاستمرار في ملفات السجل والبيانات عن طريق كتابتها إلى هذه المجلدات. ومع ذلك ، فإن النسخة إلى مخزن المحتوى المشترك هي أفضل جهد ، لذلك من الممكن فقد ملفات السجل والبيانات بسبب تعطل مفاجئ لمثيل VM.
- يتأثر تدفق السجل بالنسخة الأفضل جهدا. يمكنك ملاحظة تأخير يصل إلى دقيقة واحدة في السجلات المتدفقة.
- في مخزن المحتوى المشترك، هناك تغيير في بنية مجلد مجلدات LogFilesوالبيانات للتطبيقات التي تستخدم ذاكرة التخزين المؤقت المحلية. هناك الآن مجلدات فرعية فيها تتبع نمط تسمية "معرف فريد" + طابع زمني. يتوافق كل مجلد من المجلدات الفرعية مع مثيل VM حيث يتم تشغيل التطبيق أو تم تشغيله.
- تبقى المجلدات الأخرى في D:\home في ذاكرة التخزين المؤقت المحلية ولا يتم نسخها إلى مخزن المحتوى المشترك.
- نشر التطبيق من خلال أي طريقة مدعومة ينشر مباشرة إلى متجر المحتوى المشترك دائم. لتحديث مجلدات D :\home\site وD:\home\siteextensions في ذاكرة التخزين المؤقت المحلية، يجب إعادة تشغيل التطبيق. لجعل دورة الحياة سلسة، راجع المعلومات الواردة لاحقا في هذه المقالة.
- تظل طريقة عرض المحتوى الافتراضية لموقع SCM هي طريقة عرض مخزن المحتوى المشترك.
تمكين ذاكرة التخزين المؤقت المحلية في خدمة التطبيق
ملاحظة
ذاكرة التخزين المؤقت المحلية غير مدعومة في الطبقة F1 أو D1 .
تكوين ذاكرة التخزين المؤقت المحلية باستخدام مجموعة من إعدادات التطبيق المحجوزة. يمكنك تكوين إعدادات التطبيق هذه باستخدام الطرق التالية:
تكوين ذاكرة التخزين المؤقت المحلية باستخدام مدخل Azure
يمكنك تمكين ذاكرة التخزين المؤقت المحلية على أساس كل تطبيق ويب باستخدام إعداد التطبيق هذا: WEBSITE_LOCAL_CACHE_OPTION = Always

تكوين ذاكرة التخزين المؤقت المحلية باستخدام Azure Resource Manager
...
{
"apiVersion": "2015-08-01",
"type": "config",
"name": "appsettings",
"dependsOn": [
"[resourceId('Microsoft.Web/sites/', variables('siteName'))]"
],
"properties": {
"WEBSITE_LOCAL_CACHE_OPTION": "Always",
"WEBSITE_LOCAL_CACHE_SIZEINMB": "1000"
}
}
...
تغيير إعداد الحجم في ذاكرة التخزين المؤقت المحلية
بشكل افتراضي، يكون حجم ذاكرة التخزين المؤقت المحلية 1 غيغابايت. يتضمن ذلك مجلدات /site و/siteextensions التي يتم نسخها من مخزن المحتوى، بالإضافة إلى أي سجلات ومجلدات بيانات تم إنشاؤها محليا. لزيادة هذا الحد، استخدم إعداد WEBSITE_LOCAL_CACHE_SIZEINMBالتطبيق . يمكنك زيادة الحجم حتى 2 غيغابايت (2000 ميغابايت) لكل تطبيق. لاحظ أن تحميل ذاكرة التخزين المؤقت المحلية سيستغرق وقتا أطول مع زيادة الحجم.
أفضل الممارسات لاستخدام ذاكرة التخزين المؤقت المحلية لخدمة التطبيقات
نوصي باستخدام ذاكرة التخزين المؤقت المحلية بالاقتران مع ميزة بيئات التدريج .
- أضف إعداد
WEBSITE_LOCAL_CACHE_OPTIONالتطبيق اللاصق مع القيمةAlwaysإلى فتحة الإنتاج. إذا كنت تستخدمWEBSITE_LOCAL_CACHE_SIZEINMB، فقم أيضا بإضافته كإعداد لزج إلى فتحة الإنتاج. - قم بإنشاء فتحة تدريج وانشرها على فتحة التدريج. لا تقوم عادة بتعيين فتحة التدريج لاستخدام ذاكرة التخزين المؤقت المحلية لتمكين دورة حياة سلسة لاختبار الإنشاء والنشر للتدريج إذا حصلت على مزايا ذاكرة التخزين المؤقت المحلية لفتحة الإنتاج.
- اختبر موقعك مقابل فتحة التدريج.
- عندما تكون مستعدا، قم بإصدار عملية تبديل بين فتحات التدريج والإنتاج.
- تتضمن الإعدادات اللاصقة الاسم واللزجة إلى فتحة. لذلك عندما يتم تبديل فتحة التدريج إلى الإنتاج ، فإنها ترث إعدادات تطبيق ذاكرة التخزين المؤقت المحلية. سيتم تشغيل فتحة الإنتاج التي تم تبديلها حديثا ضد ذاكرة التخزين المؤقت المحلية بعد بضع دقائق وسيتم تسخينها كجزء من إحماء الفتحة بعد المبادلة. لذلك عند اكتمال مبادلة الفتحات، يتم تشغيل فتحة الإنتاج مقابل ذاكرة التخزين المؤقت المحلية.
الأسئلة المتداولة (FAQ)
كيف يمكنني معرفة ما إذا كانت ذاكرة التخزين المؤقت المحلية تنطبق على تطبيقي؟
إذا كان تطبيقك يحتاج إلى متجر محتوى عالي الأداء وموثوق به ، ولا يستخدم مخزن المحتوى لكتابة البيانات المهمة في وقت التشغيل ، ويقل حجمه الإجمالي عن 2 غيغابايت ، فإن الإجابة هي "نعم"! للحصول على الحجم الإجمالي لمجلدات /site و/siteextensions، يمكنك استخدام ملحق الموقع "Azure Web Apps Disk Use".
كيف يمكنني معرفة ما إذا كان موقعي قد تحول إلى استخدام ذاكرة التخزين المؤقت المحلية؟
إذا كنت تستخدم ميزة ذاكرة التخزين المؤقت المحلية مع بيئات التدريج، فلن تكتمل عملية المبادلة حتى يتم تسخين ذاكرة التخزين المؤقت المحلية. للتحقق مما إذا كان موقعك يعمل ضد ذاكرة التخزين المؤقت المحلية، يمكنك التحقق من متغير WEBSITE_LOCALCACHE_READYبيئة عملية العامل . استخدم الإرشادات الموجودة في صفحة متغير بيئة عملية العامل للوصول إلى متغير بيئة عملية العامل في مثيلات متعددة.
لقد نشرت للتو تغييرات جديدة ، ولكن لا يبدو أن تطبيقي يحتوي عليها. لماذا؟
إذا كان تطبيقك يستخدم ذاكرة التخزين المؤقت المحلية، فستحتاج إلى إعادة تشغيل موقعك للحصول على أحدث التغييرات. لا تريد نشر التغييرات على موقع إنتاج؟ راجع خيارات الفتحات في قسم أفضل الممارسات السابق.
ملاحظة
خيار التشغيل من نشر الحزمة غير متوافق مع ذاكرة التخزين المؤقت المحلية.
أين توجد سجلاتي؟
باستخدام ذاكرة التخزين المؤقت المحلية ، تبدو السجلات ومجلدات البيانات مختلفة قليلا. ومع ذلك ، تظل بنية المجلدات الفرعية كما هي ، باستثناء أن المجلدات الفرعية تقع ضمن مجلد فرعي بتنسيق "معرف VM فريد" + طابع زمني.
لقد تم تمكين ذاكرة التخزين المؤقت المحلية، ولكن لا يزال يتم إعادة تشغيل تطبيقي. ما سبب ذلك؟ اعتقدت أن ذاكرة التخزين المؤقت المحلية ساعدت في إعادة تشغيل التطبيقات المتكررة.
تساعد ذاكرة التخزين المؤقت المحلية في منع إعادة تشغيل التطبيقات المتعلقة بالتخزين. ومع ذلك، قد يظل تطبيقك خاضعا لإعادة التشغيل أثناء ترقيات البنية الأساسية المخطط لها للجهاز الظاهري. يجب أن تكون عمليات إعادة تشغيل التطبيق الإجمالية التي تواجهها مع تمكين ذاكرة التخزين المؤقت المحلية أقل.
هل تستبعد ذاكرة التخزين المؤقت المحلية أي أدلة من نسخها إلى محرك الأقراص المحلي الأسرع؟
كجزء من الخطوة التي تنسخ محتوى التخزين، يتم استبعاد أي مجلد يسمى مستودع. يساعد ذلك في السيناريوهات التي قد يحتوي فيها محتوى موقعك على مستودع تحكم مصدر قد لا تكون هناك حاجة إليه في التشغيل اليومي للتطبيق.
كيفية مسح سجلات ذاكرة التخزين المؤقت المحلية بعد عملية إدارة الموقع؟
لمسح سجلات ذاكرة التخزين المؤقت المحلية، قم بإيقاف التطبيق وإعادة تشغيله. يقوم هذا الإجراء بمسح ذاكرة التخزين المؤقت القديمة.
لماذا تبدأ خدمة التطبيقات في عرض الملفات التي تم نشرها مسبقا بعد إعادة التشغيل عند تمكين ذاكرة التخزين المؤقت المحلية؟
في حالة بدء App Service في عرض الملفات التي تم نشرها مسبقا عند إعادة التشغيل ، تحقق من وجود مقدمة إعداد التطبيق - "WEBSITE_DISABLE_SCM_SEPARATION = true". بعد إضافة هذا الإعداد ، تبدأ أي عمليات نشر عبر KUDU في الكتابة إلى الجهاز الظاهري المحلي بدلا من التخزين المستمر. يجب الاستفادة من أفضل الممارسات المذكورة أعلاه في هذه المقالة ، حيث يجب دائما إجراء عمليات النشر على فتحة التدريج التي لا تحتوي على تمكين ذاكرة التخزين المؤقت المحلية.