مشاركة عبر


اختبار الأداء والأنماط المضادة للتطبيقات السحابية

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

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

  • لماذا لم يظهر هذا السلوك أثناء الاختبار؟
  • كيف أقوم بإصلاح ذلك؟

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

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

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

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

كتالوج الأنماط المضادة

فيما يلي قائمة بمضادات التناثر التي حددناها:

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

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

لمزيد من المعلومات عن ضبط الأداء، راجع ضبط الأداء للتطبيق المُوزَّع