استكشاف أخطاء أداء السجل وإصلاحها

تساعدك هذه المقالة على استكشاف المشكلات التي قد تواجهها في أداء سجل حاوية Azure وإصلاحها.

العلامات

يمكن أن تتضمن واحدة أو أكثر مما يلي:

  • يستغرق سحب الصور أو دفعها باستخدام Docker CLI وقتًا أطول من المتوقع
  • يستغرق نشر الصور على خدمة مثل Azure Kubernetes Service وقتًا أطول من المتوقع
  • لا يمكنك إكمال عدد كبير من عمليات السحب أو الدفع المتزامنة في الوقت المتوقع
  • ترى خطأ HTTP 429 مشابهًا لـ Too many requests
  • تستغرق عمليات السحب أو الدفع في سجل مكرر جغرافيًا وقتًا أطول من المتوقع، أو يفشل الدفع بسبب الخطأ Error writing blob أو Error writing manifest

أسباب

  • قد تؤدي سرعة اتصال الشبكة إلى إبطاء عمليات التسجيل - الحل
  • قد يكون ضغط طبقة الصورة أو الاستخراج بطيئًا على العميل - الحل
  • أنت تصل إلى حد تم تكوينه في طبقة خدمة السجل أو البيئة - الحل
  • يحتوي السجل الذي تم نسخه جغرافيًا على نسخ متماثلة في المناطق المجاورة - الحل
  • أنت تسحب من نسخة متماثلة بعيدة جغرافيًا للتسجيل - الحل

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

حلول محتملة

تحقق من سرعة الشبكة المتوقعة

تحقق من سرعة التحميل والتنزيل عبر الإنترنت، أو استخدم أداة مثل AzureSpeed لاختبار التحميل والتنزيل من مخزن Azure للكائنات الثنائية كبيرة الحجم، الذي يستضيف طبقات صورة التسجيل.

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

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

الروابط ذات الصلة:

التحقق من أجهزة العميل

يمكن أن يؤثر نوع القرص ووحدة المعالجة المركزية في عميل docker على سرعة استخراج أو ضغط طبقات الصورة على العميل كجزء من عمليات السحب أو الدفع. على سبيل المثال، سيستغرق استخراج الطبقة على محرك الأقراص الثابتة وقتًا أطول من وقت استخراج القرص الصلب. قارن عمليات السحب للصور المماثلة من سجل حاوية Azure وسجل عام مثل Docker Hub.

مراجعة الحدود المكونة

إذا كنت تدفع أو تسحب صورًا متعددة أو متعددة الطبقات بشكلٍ متزامن إلى السجل الخاص بك، فراجع حدود ReadOps وWriteOps المدعومة لطبقة خدمة التسجيل. إذا كان السجل الخاص بك في المستوى الأساسي أو القياسي، ففكر في الترقية لزيادة الحدود. تحقق أيضًا مع مزود الشبكة الخاص بك بشأن اختناق الشبكة الذي قد يحدث مع العديد من العمليات المتزامنة.

راجع تكوين Docker daemon لمعرفة الحد الأقصى لعمليات التحميل أو التنزيلات المتزامنة لكل عملية دفع أو سحب على العميل. كوِّن حدودًا أعلى إذا لزم الأمر.

نظرًا لأن كل طبقة صورة تتطلب عملية تسجيل منفصلة للقراءة أو الكتابة، تحقق من عدد الطبقات في صورك. فكر في استراتيجيات لتقليل عدد طبقات الصورة.

الروابط ذات الصلة:

تكوين سجل يتم نسخ بياناته إلى أماكن متباعدة جغرافيًا

قد لا يدفع عميل Docker الذي يدفع صورة إلى سجل منسوخ جغرافيًا كل طبقات الصورة وبيانها إلى منطقة واحدة مكررة. قد يحدث هذا الموقف لأن Azure Traffic Manager يوجه طلبات التسجيل إلى أقرب سجل متماثل للشبكة. إذا كان السجل يحتوي على منطقتين قريبتين للنسخ المتماثل، فيمكن توزيع طبقات الصورة والبيان على الموقعين، وتفشل عملية الدفع عند التحقق من صحة البيان.

لتحسين دقة DNS لأقرب نسخة متماثلة عند دفع الصور، كوّن سجل منسوخ جغرافيًا في مناطق Azure نفسها كمصدر لعمليات الدفع، أو أقرب منطقة عند العمل خارج Azure.

لاستكشاف العمليات باستخدام سجل مكرر جغرافيًا وإصلاحها، يمكنك أيضًا تعطيل توجيه Traffic Manager مؤقتًا إلى تكرار واحد أو أكثر.

الروابط ذات الصلة:

تكوين DNS لسجل يتم نسخ بياناته إلى أماكن متباعدة جغرافيًا

إذا بدت عمليات السحب من سجل مكرر جغرافيًا بطيئة، فقد يتحول تكوين DNS على العميل إلى خادم DNS بعيد جغرافيًا. في هذه الحالة، قد يوجّه Traffic Manager الطلبات إلى نسخة متماثلة قريبة من الشبكة لخادم DNS ولكنها بعيدة عن العميل. شغّل أداة مثل nslookup أو dig (في Linux) لتحديد النسخة المتماثلة التي يوجه Traffic Manager طلبات التسجيل إليها. على سبيل المثال:

nslookup myregistry.azurecr.io

الحل المحتمل هو تكوين خادم DNS أقرب.

الروابط ذات الصلة:

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

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

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

الروابط ذات الصلة:

الخطوات التالية

راجع الخيارات التالية، إذا لم يتم حل مشكلتك هنا.