توصيات لتحسين التعليمات البرمجية والبنية الأساسية

ينطبق على توصية قائمة التحقق من كفاءة أداء Azure Well-Architected Framework هذه:

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

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

التعريفات

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

استراتيجيات التصميم الرئيسية

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

تحسين أداء التعليمات البرمجية

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

صك التعليمة البرمجية الخاص بك

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

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

المفاضلة: من المحتمل أن تزيد أدوات مراقبة التعليمات البرمجية من التكاليف.

تحديد المسارات الساخنة

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

  • تحليل بيانات وقت التشغيل: جمع بيانات وقت التشغيل وتحليلها لتحديد مناطق التعليمات البرمجية التي تستهلك موارد كبيرة، مثل وحدة المعالجة المركزية أو الذاكرة أو عمليات الإدخال/الإخراج. ابحث عن أنماط أو مقاطع من التعليمات البرمجية التي يتم تنفيذها بشكل متكرر أو تستغرق وقتا طويلا لإكمالها.

  • قياس الأداء: استخدم أدوات جمع المعلومات أو أطر اختبار الأداء لقياس وقت التنفيذ واستهلاك الموارد لمسارات التعليمات البرمجية المختلفة. يساعد على تحديد الاختناقات والمجالات التي يجب تحسينها.

  • ضع في اعتبارك منطق العمل وتأثير المستخدم: قم بتقييم أهمية مسارات التعليمات البرمجية المختلفة بناء على أهميتها لوظائف التطبيق أو العمليات التجارية الهامة. حدد مسارات التعليمات البرمجية الضرورية لتقديم القيمة للمستخدمين أو تلبية متطلبات الأداء.

تحسين منطق التعليمات البرمجية

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

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

  • تقليل عمليات التسجيل: يمكن أن يكون التسجيل مفيدا لتصحيح الأخطاء والتحليل، ولكن يمكن أن يؤثر التسجيل المفرط على الأداء. تقييم ضرورة كل عملية تسجيل وإزالة أي استدعاءات تسجيل غير ضرورية غير ضرورية لتحليل الأداء.

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

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

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

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

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

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

  • استخدم SDKs والمكتبات المحسنة للأداء. استخدم SDKs الأصلية أو المكتبات المحسنة للأداء. تم تصميم SDKs الأصلية للتفاعل مع الخدمات والموارد على نظام أساسي أو ضمن إطار عمل. على سبيل المثال، تعمل SDKs الأصلية على السحابة بشكل أفضل مع مستويات بيانات الخدمة السحابية من الوصول المخصص إلى واجهة برمجة التطبيقات. تتفوق SDKs في معالجة طلبات الشبكة وتحسين التفاعلات. تحتوي المكتبات المحسنة للأداء، مثل Math.NET، على وظائف محسنة للأداء. عند تطبيق الوظائف بشكل مناسب، يمكنك تحسين أداء حمل العمل الخاص بك.

  • التنفيذ الشامل: ضع في اعتبارك تأثيرات التطبيقات الشاملة، مثل البرامج الوسيطة أو عمليات التحقق من الرمز المميز، وتقييم ما إذا كانت تؤثر سلبا على الأداء.

راجع توصيات الأداء الخاصة بلغة البرمجة التي تعمل معها. قم بتقييم التعليمات البرمجية مقابل هذه التوصيات لتحديد مجالات التحسين.

المقايضات:

  • يتطلب تحسين التعليمات البرمجية والمسارات الساخنة خبرة المطور في تحديد أوجه القصور في التعليمات البرمجية أمر ذاتي وقد يكون فردا ماهرا للغاية مطلوبا للمهام الأخرى.
  • توفر SDKs الراحة وتزيل تعقيدات التفاعل مع واجهات برمجة التطبيقات. ولكن قد تحد SDKs من خيارات التحكم والتخصيص للتعليمات البرمجية المخصصة.

تحسين إدارة الذاكرة

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

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

  1. التقاط تفريغات الذاكرة: ابدأ بإعداد آلية لالتقاط تفريغ الذاكرة أثناء وقت تشغيل التطبيق الخاص بك. يمكن تشغيل الالتقاط يدويا أو تلقائيا أو عند استيفاء شروط محددة (مثل استهلاك الذاكرة الزائد). قد تقدم بعض الخدمات السحابية هذه العملية بالفعل.

  2. تحليل تفريغ الذاكرة: بعد جمع تفريغ الذاكرة، قم بتحليلها. يمكن أن تساعدك العديد من الأدوات في فحص هذه التفريغات، مثل WinDbg لتطبيقات Windows أو GDB للأنظمة المستندة إلى Unix.

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

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

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

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

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

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

  • المتغيرات المحلية: استخدم المتغيرات المحلية بدلا من المتغيرات العمومية لتقليل استهلاك الذاكرة.

  • التهيئة الكسولة: تنفيذ التهيئة الكسولة لتأجيل إنشاء الكائنات أو الموارد حتى تكون هناك حاجة إليها.

  • المخازن المؤقتة: إدارة المخازن المؤقتة بفعالية لتجنب تخصيص مخازن ذاكرة مؤقتة كبيرة.

  • تجميع الكائنات: ضع في اعتبارك تجميع الكائنات لإعادة استخدام الكائنات الكبيرة بدلا من تخصيصها وإلغاء تخصيصها.

لمزيد من المعلومات، راجع تقليل تخصيصات الذاكرةوكومة الكائنات الكبيرة على أنظمة Windows.

استخدام التزامن والتوازي

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

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

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

  • البرمجة غير المتزامنة: البرمجة غير المتزامنة هي نهج لتشغيل المهام دون حظر مؤشر الترابط الرئيسي. تمكن البرمجة غير المتزامنة البرنامج من تشغيل المهام أثناء انتظار انتهاء العمليات طويلة الأمد. مع البرمجة غير المتزامنة، يمكن للبرنامج بدء مهام متعددة والانتظار حتى تكتمل بشكل غير متزامن. لا يتعين على البرنامج الانتظار حتى تنتهي كل مهمة قبل الانتقال إلى المهمة التالية.

    هناك العديد من تقنيات وأنماط البرمجة غير المتزامنة، اعتمادا على لغة البرمجة والنظام الأساسي. أحد النهج الشائعة هو استخدام الكلمات الأساسية والبنى غير المتزامنة، مثل async و await، بلغات مثل C#. باستخدام هذه الكلمات الأساسية، يمكنك تحديد الأساليب غير المتزامنة. بالنسبة لحركة مرور HTTP، ضع في اعتبارك استخدام نمط Request-Reply غير المتزامن.

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

  • قوائم الانتظار: قائمة الانتظار هي مخزن مؤقت للتخزين يقع بين مكون طلب (منتج) ومكون المعالجة (المستهلك) لحمل العمل. يمكن أن يكون هناك العديد من المستهلكين لقائمة انتظار واحدة. مع زيادة المهام، يجب توسيع نطاق المستهلكين لتلبية الطلب. يضع المنتج المهام في قائمة انتظار. تخزن قائمة الانتظار المهام حتى يكون لدى المستهلك سعة. غالبا ما تكون قائمة الانتظار أفضل طريقة لتسليم العمل إلى خدمة معالجة تواجه ذروتها في الطلب. لمزيد من المعلومات، راجع نمط تسوية التحميل المستند إلى قائمة الانتظاروقوائم انتظار التخزين وقوائم انتظار ناقل خدمة Microsoft Azure.

استخدام تجميع الاتصالات

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

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

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

المخاطر: يمكن أن يؤدي تجميع الاتصال إلى تجزئة التجمع وتدهور الأداء.

تحسين وظائف الخلفية

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

تحسين أداء البنية الأساسية

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

إضافة حدود الاستخدام. يمكنك تنفيذ حدود الاستخدام على بعض مكونات حمل العمل. على سبيل المثال، لإزالة الجرابات غير المستقرة، يمكنك تحديد وحدة المعالجة المركزية وحدود الذاكرة في خدمة Azure Kubernetes (AKS). لتحسين الأداء، يمكنك تحديد حدود الذاكرة في أجهزة Java الظاهرية (VMs).

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

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

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

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

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

  • بروتوكولات الشبكة: الترقية إلى البروتوكولات الحديثة مثل HTTP/2، والتي تمكن من إرسال طلبات متعددة عبر اتصال واحد. تقلل البروتوكولات الحديثة من النفقات العامة لإنشاء اتصالات جديدة.

    المفاضلة: قد تستبعد البروتوكولات الحديثة العملاء الأقدم.

  • الدردشة على الشبكة: تجميع طلبات الشبكة معا لتقليل عدد الطلبات. بدلا من تقديم طلبات صغيرة متعددة، ادمجها في طلبات أكبر لتقليل الحمل على الشبكة.

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

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

  • جمع السجل: جمع بيانات السجل الضرورية لدعم متطلباتك والاحتفاظ بها فقط. تكوين قواعد جمع البيانات وتنفيذ اعتبارات التصميم لتحسين تكاليف Log Analytics.

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

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

تسهيل Azure

رمز الأجهزة: يدعم Azure Monitor Application Insights الأجهزة التلقائية (الاختراق التلقائي) والأجهزة اليدوية للتعليمات البرمجية للتطبيق. يتيح الإنشاء التلقائي جمع بيانات تتبع الاستخدام دون لمس التعليمات البرمجية للتطبيق. يتطلب تقرير عن حالة النظام اليدوي تغييرات التعليمات البرمجية لتنفيذ Application Insights أو OpenTelemetry API. يمكنك استخدام محلل ملفات تعريف Application Insights للمساعدة في تحسين المسارات الساخنة.

تحسين منطق التعليمات البرمجية: يوفر Azure حزم SDK والمكتبات لمختلف لغات البرمجة للتفاعل مع خدمات Azure. استخدم SDKs لتبسيط التفاعلات بين التطبيقات وموارد Azure. توفر SDKs التفاعل الأمثل مع خدمات Azure، ما يقلل من زمن الانتقال ويعزز الكفاءة.

تحسين إدارة الذاكرة: استخدم ميزة الكشف الذكية ل Application Insights لتحليل استهلاك الذاكرة والمساعدة في تحديد ومعالجة تسرب الذاكرة.

تحتوي Azure App Service على محلل ملفات تعريف وميزة تجميع وتحليل تفريغ الذاكرة. يمكن لميزة التخزين الصحي التلقائي ل App Service أن تأخذ تلقائيا عمليات تفريغ الذاكرة وتتبعات ملف التعريف لتطبيقات .NET وJava.

استخدام التزامن والتوازي: توفر خدمات Azure المختلفة دعما فريدا للتزامن، مثل Azure Cosmos DBوAzure Functionsوتخزين Blob. للتوازي، تدعم الخدمات AKS نشر التطبيقات الحاوية، ما يحسن المعالجة المتوازية.

Azure Batch هي خدمة جدولة مهام مستندة إلى السحابة يمكنك استخدامها لتمكين الحوسبة المتوازية وعالية الأداء دون الحاجة إلى إعداد البنية الأساسية. لمزيد من المعلومات، راجع وظائف الخلفية.

تحسين أداء البنية الأساسية: تنفيذ قوالب Azure Resource Manager لتعريف البنية الأساسية وتوزيعها باستخدام التعليمات البرمجية. استخدم هذه القوالب لتنفيذ عمليات توزيع موارد فعالة وقابلة للتكرار ومتسقة. يوفر نهج Azure إمكانات الحوكمة لضمان التزام عمليات توزيع الموارد بأفضل الممارسات والمعايير التنظيمية.

بالنسبة للبرمجة غير المتزامنة، استخدم خدمات الانتظار القابلة للتطوير، مثل تخزين قائمة انتظار Azureناقل خدمة Azure، لتسهيل البرمجة غير المتزامنة. يمكنك وضع المهام في قائمة الانتظار ومعالجتها بشكل مستقل. لدعم العمليات غير المتزامنة، يقدم Azure Marketplace قوائم انتظار وأدوات تابعة لجهة خارجية يمكنك دمجها مع خدمات Azure.

قائمة مراجعة كفاءة الأداء

راجع المجموعة الكاملة من التوصيات.