توصيات لتحسين تكاليف التعليمات البرمجية
ينطبق على توصية قائمة التحقق من Azure Well-Architected Framework Cost Optimization هذه:
CO:11 | تحسين تكاليف التعليمات البرمجية. تقييم التعليمات البرمجية وتعديلها لتلبية المتطلبات الوظيفية وغير الوظيفية بموارد أقل أو أرخص. |
---|
يصف هذا الدليل التوصيات لتحسين تكاليف التعليمات البرمجية. تحسين التعليمات البرمجية هو عملية تحسين كفاءة التعليمات البرمجية للتطبيق وأدائها وفعاليتها من حيث التكلفة. يتضمن تحسين التعليمات البرمجية الفعال إجراء تغييرات على التعليمات البرمجية لتقليل استهلاك الموارد وتقليل وقت التنفيذ وتحسين الأداء العام.
من خلال تحسين التعليمات البرمجية، يمكنك تحديد أوجه القصور التي قد تؤدي إلى زيادة استهلاك الموارد وارتفاع التكاليف والقضاء عليها. يمكنك تقليل وقت المعالجة واستخدام الذاكرة والنفقات العامة للشبكة، ما قد يؤدي إلى تطبيقات أسرع وأكثر استجابة. يحسن الأداء المحسن تجربة المستخدم ويمكن نظامك من التعامل مع أحمال العمل الأكبر بكفاءة.
التعريفات
المصطلح | التعريف |
---|---|
أدوات التعليمات البرمجية | ممارسة إضافة قصاصات برمجية أو مكتبات إلى التعليمات البرمجية التي تجمع البيانات وتراقب أداء التعليمات البرمجية أثناء وقت التشغيل. |
التزامن | تنفيذ عمليات متعددة في نفس الوقت. |
تسلسل البيانات | عملية تحويل كائنات البيانات إلى تنسيق يمكن تخزينه أو إرساله ثم إعادة بنائها مرة أخرى إلى شكلها الأصلي عند الحاجة. |
المسارات الساخنة | أقسام مهمة أو يتم تشغيلها بشكل متكرر من برنامج تتطلب أداء عاليا والفترة انتقال منخفضة. |
استراتيجيات التصميم الرئيسية
يعني تحسين التكلفة للتعليمات البرمجية تحسين التعليمات البرمجية لتحقيق نفس الوظيفة مع موارد أقل لكل مثيل، مثل دورات وحدة المعالجة المركزية والذاكرة والتخزين. من خلال تقليل استهلاك الموارد، يمكنك توفير المال عندما تتعامل التطبيقات مع كميات كبيرة من البيانات أو تواجه أحمال نسبة استخدام الشبكة العالية.
تكون تحسينات التعليمات البرمجية أكثر فعالية عندما تتابع جهود تحسين التكلفة الأخرى حول التحجيم، والتحجيم، والتكرار، والتقييد. بعد الاهتمام بهذه العناصر الأساسية، يمكنك التفكير في تحسين التعليمات البرمجية.
قد لا تعرف ما إذا كان لديك تعليمة برمجية غير فعالة. يمكن لميزات بلا خادم والتحجيم التلقائي والموثوقية إخفاء أوجه القصور في التعليمات البرمجية. يمكن أن تساعدك الاستراتيجيات التالية في تحديد وإصلاح التعليمات البرمجية للتطبيق التي تكلف أكثر مما ينبغي.
صك التعليمة البرمجية الخاص بك
تعليمة برمجية تقرير عن حالة النظام هي ممارسة إضافة قصاصات برمجية أو مكتبات تجمع البيانات وتراقب أداء التعليمات البرمجية أثناء وقت التشغيل. يسمح للمطورين بجمع معلومات حول المقاييس الرئيسية، مثل استهلاك الموارد (استخدام وحدة المعالجة المركزية أو الذاكرة) ووقت التنفيذ. من خلال وضع علامة على التعليمات البرمجية، يمكن للمطورين الحصول على رؤى حول المسارات الساخنة للتعليمات البرمجية، وتحديد ازدحامات الأداء، وتحسين التعليمات البرمجية للحصول على كفاءة أفضل وفعالية من حيث التكلفة.
في بيئة مثالية، يجب عليك إجراء تحليل التعليمات البرمجية في وقت مبكر من دورة حياة تطوير البرامج. في وقت سابق كنت التقاط مشكلة التعليمات البرمجية، وأرخص انها لإصلاح.
أتمتة أكبر قدر ممكن من تحليل التعليمات البرمجية هذا. استخدم أدوات ديناميكية وثابتة لتحليل التعليمات البرمجية لتقليل الجهد اليدوي. ومع ذلك، ضع في اعتبارك أن هذا الاختبار لا يزال محاكاة للإنتاج. يوفر الإنتاج فهما أوضح لتحسين التعليمات البرمجية.
المفاضلة: من المحتمل أن تزيد أدوات مراقبة التعليمات البرمجية من التكاليف.
تحديد المسارات الساخنة وتحسينها
من خلال وضع علامة على التعليمات البرمجية الخاصة بك، يمكنك قياس استهلاك الموارد لمسارات التعليمات البرمجية. تساعدك هذه القياسات في تحديد المسارات الساخنة. المسارات الساخنة لها تأثير كبير على الأداء واستخدام الموارد. إنها أقسام مهمة أو يتم تشغيلها بشكل متكرر في برنامج يتطلب أداء عاليا والفترة انتقال منخفضة.
لتحديد المسارات الساخنة، ضع في اعتبارك هذه المهام:
تحليل بيانات وقت التشغيل: جمع بيانات وقت التشغيل وتحليلها لتحديد مناطق التعليمات البرمجية التي تستهلك موارد كبيرة، مثل وحدة المعالجة المركزية أو الذاكرة أو عمليات الإدخال/الإخراج. ابحث عن أنماط أو مقاطع من التعليمات البرمجية التي يتم تشغيلها بشكل متكرر أو تستغرق وقتا طويلا لإكمالها.
قياس الأداء: استخدم أدوات جمع المعلومات أو أطر عمل اختبار الأداء لقياس وقت التنفيذ واستهلاك الموارد لمسارات التعليمات البرمجية. يساعد هذا القياس في تحديد الازدحامات والمجالات للتحسين.
ضع في اعتبارك منطق العمل وتأثير المستخدم: قم بتقييم أهمية مسارات التعليمات البرمجية استنادا إلى أهميتها لوظائف التطبيق أو العمليات التجارية الهامة. حدد مسارات التعليمات البرمجية المهمة لتقديم القيمة للمستخدمين أو تلبية متطلبات الأداء.
راجع توصيات الأداء الخاصة بلغة البرمجة التي تعمل معها. قم بتقييم التعليمات البرمجية مقابل هذه التوصيات لتحديد مجالات التحسين. قم بإزالة أي عمليات غير ضرورية داخل مسار التعليمات البرمجية التي قد تؤثر على الأداء.
إزالة استدعاءات الوظائف غير الضرورية: راجع التعليمات البرمجية الخاصة بك. حدد أي وظائف غير ضرورية للوظائف المطلوبة وقد تؤثر سلبا على الأداء. على سبيل المثال، إذا قام استدعاء دالة بإجراء التحقق من الصحة الذي حدث سابقا في التعليمات البرمجية، يمكنك إزالة استدعاء الدالة غير الضروري هذا.
تقليل عمليات التسجيل: يمكن أن يكون التسجيل مفيدا لتصحيح الأخطاء والتحليل، ولكن يمكن أن يؤثر التسجيل المفرط على الأداء. تقييم ضرورة كل عملية تسجيل وإزالة أي استدعاءات تسجيل غير ضرورية ليست ضرورية لتحليل الأداء.
تحسين الحلقات والمشروطات: تحليل الحلقات والمشروطات في التعليمات البرمجية الخاصة بك. حدد أي تكرارات أو شروط غير ضرورية يمكنك إزالتها. يمكن أن يؤدي تبسيط هذه الهياكل وتحسينها إلى تحسين أداء التعليمات البرمجية الخاصة بك.
تقليل معالجة البيانات غير الضرورية: راجع التعليمات البرمجية الخاصة بك لأي عمليات معالجة بيانات غير ضرورية، مثل العمليات الحسابية المتكررة أو التحويلات. قم بالقضاء على هذه العمليات غير الضرورية لتحسين كفاءة التعليمات البرمجية الخاصة بك.
تقليل طلبات الشبكة: إذا كانت التعليمات البرمجية الخاصة بك تقدم طلبات الشبكة، فقم بتقليص عدد الطلبات وتحسين استخدامها. طلبات الدفعات عندما يكون ذلك ممكنا وتجنب الرحلات ذهابا وجولة غير ضرورية لتحسين الأداء.
تقليل التخصيصات: تحديد المناطق التي يحدث فيها تخصيص الذاكرة الزائد. تحسين التعليمات البرمجية عن طريق تقليل التخصيصات غير الضرورية وإعادة استخدام الموارد الموجودة عندما يكون ذلك ممكنا.
من خلال تقليل التخصيصات، يمكنك تحسين كفاءة الذاكرة والأداء العام. استخدم استراتيجيات إدارة الذاكرة وجمع البيانات المهملة المناسبة للغة البرمجة الخاصة بك.
تقليل حجم بنية البيانات: قم بتقييم حجم بنيات البيانات الخاصة بك، مثل الفئات، وحدد المناطق التي يمكن فيها التقليل. راجع متطلبات البيانات وأزل أي حقول أو خصائص غير ضرورية. تحسين استخدام الذاكرة عن طريق تحديد أنواع البيانات المناسبة وتعبئة البيانات بكفاءة.
تقييم التطبيقات الشاملة: ضع في اعتبارك تأثيرات التطبيقات الشاملة، مثل البرامج الوسيطة أو عمليات التحقق من الرمز المميز. تقييم ما إذا كانت تؤثر سلبا على الأداء.
المفاضلة: يتطلب تحسين التعليمات البرمجية والمسارات الساخنة خبرة المطور في تحديد أوجه القصور في التعليمات البرمجية. قد يحتاج هؤلاء الأفراد ذوي المهارات العالية إلى قضاء بعض الوقت في مهام أخرى.
تقييم استخدام التزامن
يتضمن تقييم استخدام التزامن تقييم ما إذا كانت المعالجة غير المتزامنة أو متعددة البيانات أو المعالجة المتعددة يمكن أن تزيد من استخدام الموارد وتقليل النفقات. باستخدام المعالجة غير المتزامنة أو متعددة البيانات أو المعالجة المتعددة، يمكنك التعامل مع المزيد من المهام بنفس الموارد. ومع ذلك، من الضروري ضمان التنفيذ المناسب لتجنب المزيد من النفقات العامة والحفاظ على فعالية التكلفة.
لتقييم ما إذا كان استخدام التزامن مناسبا، يمكنك اتباع هذه الإرشادات:
المعالجة غير المتزامنة: تسمح المعالجة غير المتزامنة بتنفيذ غير محظور. على سبيل المثال، يمكنك بدء عملية ثم إيقافها مؤقتا للسماح بانتهاء عملية ثانية.
حدد مكونات التعليمات البرمجية أو العمليات التي يمكنك تشغيلها بشكل غير متزامن. حدد لغة البرمجة أو إطار العمل الذي تستخدمه وافهم نموذج البرمجة غير المتزامن الذي يدعمه، كما هو الحال
async
/await
في .NET أو الوعود في JavaScript.أعد هيكلة التعليمات البرمجية الخاصة بك لاستخدام بنيات البرمجة غير المتزامنة عن طريق تمكين تنفيذ المهام دون حظر. فصل العمليات طويلة الأمد أو عمليات الإدخال/الإخراج المكثفة عن مؤشر ترابط التنفيذ الرئيسي باستخدام أساليب غير متزامنة أو عمليات رد الاتصال. استخدم واجهات برمجة التطبيقات أو المكتبات غير المتزامنة التي توفرها لغة البرمجة أو إطار العمل للتعامل مع مهام سير العمل غير المتزامنة.
Multithreading: في multithreading، يمكنك تشغيل مؤشرات ترابط متعددة لعملية واحدة بشكل متزامن.
حدد أقسام التعليمات البرمجية التي يمكنك تشغيلها بشكل متزامن ومستقل. اقرأ الوثائق أو الإرشادات الخاصة بلغة البرمجة أو إطار العمل الذي تستخدمه للحصول على أفضل الممارسات متعددة القراءة. إنشاء مؤشرات ترابط متعددة أو تجمعات مؤشرات ترابط للتعامل مع التنفيذ المتوازي للمهام.
تنفيذ آليات المزامنة، مثل الأقفال أو الطفرات أو العلامات، لضمان سلامة مؤشر الترابط ومنع ظروف السباق عندما تصل التعليمات البرمجية إلى الموارد المشتركة. ضع في اعتبارك استخدام التجريدات ذات المستوى الأعلى، مثل تجمعات مؤشرات الترابط أو مكتبات التوازي المستندة إلى المهام، لتبسيط إدارة مؤشرات الترابط المتعددة وتبسيط التحكم في التزامن.
المعالجة المتعددة: يمكن أن يكون للمعالجة المتعددة عمليات تعمل بالتوازي. يمكن أن يوفر استخداما أفضل لذاكرات أساسية متعددة لوحدة المعالجة المركزية مقارنة بالقراءة المتعددة.
حدد ما إذا كان حمل العمل أو العمليات في التعليمات البرمجية الخاصة بك تصلح للمعالجة المتوازية. حدد لغة البرمجة أو إطار العمل الذي تستخدمه واستكشف قدراته متعددة المعالجات. على سبيل المثال، ضع في اعتبارك وحدة المعالجة المتعددة في Python أو التدفقات المتوازية في Java. صمم التعليمات البرمجية الخاصة بك لتقسيم حمل العمل إلى مهام مستقلة متعددة يمكن معالجتها بشكل متزامن.
استخدم واجهات برمجة التطبيقات أو المكتبات متعددة المعالجات لإنشاء العمليات المتوازية وإدارتها. توزيع حمل العمل بين واجهات برمجة التطبيقات أو المكتبات هذه. لتمكين التنسيق ومشاركة البيانات بين عمليات متعددة، قم بتنفيذ آليات الاتصال مثل الاتصال بين المعالجات (IPC) أو الذاكرة المشتركة أو تمرير الرسائل، اعتمادا على لغة البرمجة أو إطار العمل الخاص بك.
استخدام مجموعات SDK المناسبة
لتحسين التكلفة، حدد SDKs المصممة لتحسين استخدام الموارد وتحسين الأداء. من المهم تقييم ميزات وقدرات كل SDK. ضع في اعتبارك توافقها مع لغة البرمجة وبيئة التطوير الخاصة بك.
فيما يلي إرشادات للمساعدة في اختيار أفضل SDKs لحمل العمل الخاص بك:
إجراء اختبار الأداء: مقارنة استخدام الموارد وأداء SDKs من خلال اختبار الأداء. اختر SDK الذي يلبي احتياجاتك على أفضل نحو من حيث تحسين الموارد وتحسين الأداء. ادمج SDK المختار في قاعدة التعليمات البرمجية الخاصة بك باتباع الوثائق والإرشادات المتوفرة.
مراقبة استخدام الموارد وتحسين التعليمات البرمجية: مراقبة استخدام الموارد باستخدام SDK المنفذة. اجمع الرؤى من المراقبة والتحليل لتحسين التعليمات البرمجية الخاصة بك.
اختيار نظام التشغيل المناسب
يمكن تشغيل معظم لغات الترميز على أنظمة تشغيل مختلفة، لذلك من المهم تقييم نظام التشغيل الخاص بك مقابل بدائل أرخص. إذا كان نظام تشغيل بديل يدعم نفس الوظيفة أو وظائف مماثلة بتكلفة أقل، فمن المفيد التفكير في ذلك. من خلال اختيار نظام تشغيل أرخص، يمكنك تقليل تكلفة رسوم الترخيص وتكاليف البنية الأساسية.
يمكن أن يساهم نظام التشغيل الصحيح في تحسين التكلفة الإجمالية لحمل العمل الخاص بك. لاختيار نظام التشغيل المناسب لحمل العمل الخاص بك، جرب هذه الأنشطة:
تقييم متطلباتك: فهم الاحتياجات المحددة لحمل العمل الخاص بك، بما في ذلك لغات البرمجة وأطر العمل التي تستخدمها. ضع في اعتبارك أي تبعيات أو عمليات تكامل مع أنظمة أخرى.
ضع في اعتبارك التوافق: تأكد من أن نظام التشغيل الذي تختاره متوافق مع لغات الترميز وأطر العمل وأي مكتبات أو أدوات تابعة لجهة خارجية تستخدمها. تحقق من الوثائق ودعم المجتمع لنظام التشغيل للتأكد من توافقه بشكل جيد مع مكدس التكنولوجيا الخاص بك.
تقييم الوظائف: حدد ما إذا كان نظام التشغيل البديل يدعم نفس الوظيفة أو ما شابهها مثل نظام التشغيل الحالي. تقييم ما إذا كان يوفر الميزات والقدرات الضرورية التي يتطلبها حمل العمل الخاص بك.
مقارنة التكاليف: مقارنة التكاليف المرتبطة بأنظمة التشغيل. ضع في اعتبارك عوامل مثل رسوم الترخيص وتكاليف الدعم ومتطلبات البنية الأساسية. ابحث عن بدائل أرخص يمكنها تلبية متطلبات حمل العمل الخاص بك دون المساس بالوظائف.
ضع في اعتبارك الأداء والتحسين: تقييم قدرات الأداء والتحسين لنظام التشغيل البديل. ابحث عن المعايير أو دراسات الحالة أو مقارنات الأداء لفهم كيفية أدائها في سيناريوهات العالم الحقيقي.
مراجعة الأمان والاستقرار: تقييم أمان واستقرار نظام التشغيل البديل. ابحث عن تحديثات الأمان والتصحيحات ودعم المجتمع لضمان الحفاظ على نظام التشغيل بشكل نشط وآمن ومستقر بشكل عام.
ضع في اعتبارك دعم المورد: قم بتقييم مستوى دعم المورد المتوفر لنظام التشغيل البديل. تحقق مما إذا كانت هناك قنوات دعم رسمية ووثائق ومجتمع من المستخدمين الذين يمكنهم تقديم المساعدة إذا كنت بحاجة إليها.
تحسين اجتياز الشبكة
يتمثل تحسين اجتياز الشبكة في تقليل نسبة استخدام الشبكة بين مكونات حمل العمل. غالبا ما يكون لنقل البيانات تكلفة مقترنة. من خلال تقليل نسبة استخدام الشبكة، يمكنك تقليل كمية البيانات التي يجب نقلها مع خفض التكاليف.
تحليل حمل العمل الخاص بك وتحديد أي عمليات نقل بيانات غير ضرورية بين المكونات. تجنب نقل البيانات المكررة أو المكررة، ونقل المعلومات الأساسية فقط. على سبيل المثال، إذا طلب أحد المكونات بشكل متكرر نفس البيانات من مكون آخر، فهو مرشح للتحسين. يمكنك إعادة بناء التعليمات البرمجية لتقليل المكالمات غير الضرورية أو للطلبات المجمعة، ما يقلل من البيانات المنقولة. قد ترسل التطبيقات كائنات كاملة أو بنيات بيانات عند الحاجة إلى عدد قليل فقط من الحقول. من خلال تحسين التعليمات البرمجية لإرسال البيانات المطلوبة فقط، يمكنك تقليل حجم كل نقل للبيانات.
تحسين بروتوكولات الشبكة
تلعب بروتوكولات الشبكة دورا حاسما في كفاءة اتصال الشبكة. من خلال تحسين بروتوكولات الشبكة، يمكنك تحسين الكفاءة الإجمالية لنقل البيانات وتقليل استهلاك الموارد.
ضع في اعتبارك هذه الاقتراحات:
اختيار بروتوكولات فعالة: حدد البروتوكولات المعروفة بكفاءتها من حيث سرعة نقل البيانات وتقليل النفقات العامة. على سبيل المثال، ضع في اعتبارك استخدام بروتوكولات مثل HTTP/2 عبر HTTP/1.1. تم تصميم هذه البروتوكولات لتحسين الأداء من خلال تقليل زمن الانتقال وتحسين نقل البيانات. استخدم المكتبات وأطر العمل في التطبيق الخاص بك لاستخدام هذه البروتوكولات.
ضغط الدعم: تنفيذ آليات الضغط في بروتوكولات الشبكة لتقليل حجم البيانات التي يتم نقلها. يمكن أن يقلل الضغط بشكل كبير من كمية البيانات المرسلة عبر الشبكة، مما يؤدي إلى تحسين الأداء وتقليل استخدام النطاق الترددي. عادة ما يتم تمكين الضغط من جانب الخادم في التعليمات البرمجية للتطبيق أو تكوين الخادم.
استخدام تجميع الاتصال: يسمح تجميع الاتصال بإعادة استخدام اتصالات الشبكة المنشأة لتقليل النفقات العامة لإنشاء اتصالات جديدة لكل طلب. يمكن أن يؤدي تجميع الاتصال إلى تحسين كفاءة اتصال الشبكة عن طريق تجنب الحمل الزائد لإعداد الاتصال وتفكه. اختر مكتبة أو إطار عمل لتجميع الاتصال وقم بتكوينه لتلبية احتياجات حمل العمل.
تنفيذ تحسينات أخرى: استكشف التحسينات الأخرى الخاصة بحمل العمل وبيئة الشبكة. على سبيل المثال، يمكنك استخدام التخزين المؤقت للمحتوى وموازنة التحميل وتشكيل نسبة استخدام الشبكة لتحسين اجتياز الشبكة بشكل أكبر.
تقليل النفقات العامة للشبكة
تقليل مقدار حركة مرور الشبكة ونقل البيانات بين مكونات حمل العمل الخاص بك. من خلال تقليل النفقات العامة للشبكة، يمكنك خفض التكاليف المرتبطة بالدخول والخروج إلى البيانات وتحسين أداء الشبكة بشكل عام.
ضع في اعتبارك هذه التقنيات:
تقليل الطلبات المكررة: تحليل التعليمات البرمجية لتحديد أي طلبات مكررة أو غير ضرورية. بدلا من تقديم طلبات متعددة لنفس البيانات، يمكنك تعديل التعليمات البرمجية لاسترداد البيانات مرة واحدة وإعادة استخدامها حسب الحاجة.
تحسين حجم البيانات: راجع البيانات التي يتم إرسالها بين المكونات أو الأنظمة، وابحث عن فرص لتقليل حجمها. ضع في اعتبارك تقنيات مثل ضغط البيانات قبل الإرسال أو استخدام تنسيقات بيانات أكثر كفاءة. من خلال تقليل حجم البيانات، يمكنك تقليل استخدام النطاق الترددي للشبكة وتحسين الكفاءة الإجمالية.
طلبات الدفعات: إذا كان ذلك ممكنا، ففكر في تجميع طلبات أصغر متعددة في طلب واحد أكبر. يقلل الإرسال في دفعات من النفقات العامة لإنشاء اتصالات متعددة ويقلل من نقل البيانات الإجمالي.
استخدام تسلسل البيانات: تسلسل البيانات هو عملية تحويل بنيات البيانات المعقدة أو الكائنات إلى تنسيق يمكن إرساله بسهولة عبر شبكة أو تخزينه في نظام تخزين مستمر. تتضمن هذه الاستراتيجية تمثيل البيانات بتنسيق موحد، بحيث يمكن نقل البيانات ومعالجتها وإعادة بنائها بكفاءة في الطرف المتلقي.
حدد تنسيق تسلسل مضغوط وسريع ومناسب لمتطلبات حمل العمل.
تنسيق التسلسل الوصف مخازن البروتوكول (protobuf) تنسيق تسلسل ثنائي يوفر ترميز فعال وفك ترميز للبيانات المنظمة. يستخدم ملفات التعريف المحرفة لتعريف بنيات الرسائل. MessagePack تنسيق تسلسل ثنائي للإرسال المضغوط عبر السلك. وهو يدعم أنواع البيانات المختلفة ويوفر أداء تسلسل وإلغاء تسلسل سريع. JavaScript Object Notation (JSON) تنسيق تسلسل البيانات المستخدم على نطاق واسع الذي يمكن للبشر قراءته ويسهل العمل معه. يستند JSON إلى النص ولديه دعم واسع عبر الأنظمة الأساسية. JSON ثنائي (BSON) تنسيق تسلسل ثنائي مشابه ل JSON ولكنه مصمم للتسلسل وإلغاء التسلسل الفعال. يتضمن BSON أنواع بيانات إضافية غير متوفرة في JSON. اعتمادا على تنسيق التسلسل، تحتاج إلى تنفيذ المنطق لتسلسل العناصر أو بنيات البيانات إلى التنسيق المختار وإلغاء تسلسلها مرة أخرى إلى شكلها الأصلي. يمكنك تنفيذ هذا المنطق باستخدام المكتبات أو أطر العمل التي توفر قدرات التسلسل للتنسيق.
تحسين الوصول إلى البيانات
يشير تحسين الوصول إلى البيانات إلى تبسيط الأنماط والتقنيات لاسترداد البيانات وتخزينها، لتقليل العمليات غير الضرورية. عند تحسين الوصول إلى البيانات، يمكنك توفير التكاليف عن طريق تقليل استخدام الموارد، وتقليل استرداد البيانات، وتحسين كفاءة معالجة البيانات. ضع في اعتبارك تقنيات مثل التخزين المؤقت للبيانات والاستعلام الفعال عن البيانات وضغط البيانات.
استخدام آليات التخزين المؤقت
يتضمن التخزين المؤقت تخزين البيانات التي يتم الوصول إليها بشكل متكرر بالقرب من المكونات التي تتطلبها. تقلل هذه التقنية من الحاجة إلى اجتياز الشبكة عن طريق خدمة البيانات من ذاكرة التخزين المؤقت بدلا من إحضارها عبر الشبكة.
ضع في اعتبارك آليات التخزين المؤقت هذه:
استخدام ذاكرة تخزين مؤقت خارجية: أحد حلول التخزين المؤقت الشائعة هو شبكة تسليم المحتوى. يساعد على تقليل زمن الانتقال وتقليل اجتياز الشبكة عن طريق التخزين المؤقت للمحتوى الثابت الأقرب إلى المستهلكين.
ضبط معلمات التخزين المؤقت: تكوين معلمات التخزين المؤقت، مثل وقت البقاء (TTL)، لتحسين فائدة التخزين المؤقت مع تقليل العيوب المحتملة. يضمن تعيين TTL مناسب بقاء البيانات المخزنة مؤقتا حديثة وملائمة.
استخدام التخزين المؤقت في الذاكرة: بالإضافة إلى حلول التخزين المؤقت الخارجية، ضع في اعتبارك تنفيذ التخزين المؤقت في الذاكرة في التطبيق الخاص بك. يمكن أن يساعد التخزين المؤقت في الذاكرة في الاستفادة من موارد الحوسبة الخاملة وزيادة كثافة الحوسبة للموارد المخصصة.
تحسين نسبة استخدام الشبكة لقاعدة البيانات
يمكنك تحسين كفاءة اتصال التطبيق بقاعدة البيانات. فيما يلي بعض الاعتبارات والتقنيات الرئيسية لتحسين نسبة استخدام الشبكة لقاعدة البيانات:
إنشاء الفهارس: الفهرسة هي عملية إنشاء هياكل البيانات التي تحسن سرعة استرداد البيانات. من خلال إنشاء فهارس على الأعمدة التي يتم الاستعلام عنها بشكل متكرر، يمكنك تقليل الوقت المستغرق لتشغيل الاستعلامات بشكل كبير. على سبيل المثال، إذا كان لديك جدول مستخدمين مع عمود لأسماء المستخدمين، يمكنك إنشاء فهرس على عمود اسم المستخدم لتسريع الاستعلامات التي تبحث عن أسماء مستخدمين محددة.
حدد الأعمدة التي يتم الوصول إليها بشكل متكرر وأنشئ فهارس على تلك الأعمدة لتسريع استرداد البيانات. تحليل الفهارس الموجودة وتحسينها بانتظام للتأكد من أنها لا تزال فعالة. تجنب الفهرسة الزائدة لأنها يمكن أن تؤثر سلبا على عمليات الإدراج والتحديث.
تحسين الاستعلامات: تصميم استعلامات فعالة من خلال النظر في متطلبات البيانات المحددة وتقليل استرداد البيانات غير الضرورية. ابدأ باستخدام أنواع الصلة المناسبة (على سبيل المثال، الصلة الداخلية والصلة اليسرى)، استنادا إلى العلاقة بين الجداول. استخدم تقنيات تحسين الاستعلام مثل تلميحات الاستعلام وتحليل خطة الاستعلام وإعادة كتابة الاستعلام لتحسين الأداء.
نتائج استعلام ذاكرة التخزين المؤقت: يمكنك تخزين نتائج الاستعلامات التي يتم تشغيلها بشكل متكرر في الذاكرة أو ذاكرة التخزين المؤقت. يمكن بعد ذلك تقديم عمليات التنفيذ اللاحقة لنفس الاستعلام من ذاكرة التخزين المؤقت، ما يلغي الحاجة إلى عمليات قاعدة بيانات باهظة الثمن.
استخدم إطار عمل تعيين كائن علائقي (ORM): استخدم ميزات ORM مثل التحميل الكسول والتخزين المؤقت ومعالجة الدفعات لتحسين استرداد البيانات وتقليل الرحلات ذهابا ووصولا إلى قاعدة البيانات. استخدم أطر عمل ORM مثل Entity Framework ل C# أو Hibernate ل Java.
تحسين الإجراءات المخزنة: تحليل وتحسين منطق وأداء الإجراءات المخزنة. الهدف هو تجنب الحسابات غير الضرورية أو الاستعلامات المكررة في الإجراءات المخزنة. تحسين استخدام الجداول والمتغيرات والمؤشرات المؤقتة لتقليل استهلاك الموارد.
تنظيم البيانات
يتضمن تنظيم البيانات للوصول والاسترداد الفعال هيكلة البيانات وتخزينها بطريقة تزيد من الأداء إلى أقصى حد وتقلل من استهلاك الموارد. يمكنه تحسين أوقات استجابة الاستعلام وتقليل تكاليف نقل البيانات وتحسين استخدام التخزين.
فيما يلي بعض التقنيات لتنظيم البيانات بكفاءة:
القسم: يتضمن التقسيم تقسيم مجموعة بيانات كبيرة إلى مجموعات فرعية أصغر وأكثر قابلية للإدارة تسمى الأقسام. يمكنك تخزين كل قسم بشكل منفصل للسماح بالمعالجة المتوازية وتحسين أداء الاستعلام. على سبيل المثال، يمكنك تقسيم البيانات استنادا إلى نطاق معين من القيم أو عن طريق توزيع البيانات عبر الخوادم. يمكن لهذه التقنية تحسين قابلية التوسع وتقليل المنافسة وتحسين استخدام الموارد.
القطع: التقسيم هو تقنية لتقسيم البيانات أفقيا عبر مثيلات أو خوادم قاعدة بيانات متعددة. يحتوي كل جزء على مجموعة فرعية من البيانات، ويمكن معالجة الاستعلامات بالتوازي عبر هذه الأجزاء. يمكن أن يؤدي التقسيم إلى تحسين أداء الاستعلام عن طريق توزيع حمل العمل وتقليل كمية البيانات التي يصل إليها كل استعلام.
الضغط: يتضمن ضغط البيانات تقليل حجم البيانات لتقليل متطلبات التخزين وتحسين كفاءة نقل البيانات. نظرا لأن البيانات المضغوطة تأخذ مساحة أقل على القرص، فإنها تسمح بتحقيق وفورات في تكاليف التخزين. يمكن أيضا نقل البيانات المضغوطة بسرعة أكبر عبر الشبكات وتقليل تكاليف نقل البيانات.
على سبيل المثال، ضع في اعتبارك سيناريو يكون لديك فيه مجموعة بيانات كبيرة من معلومات العملاء. من خلال تقسيم البيانات استنادا إلى مناطق العملاء أو التركيبة السكانية، يمكنك توزيع حمل العمل عبر خوادم متعددة وتحسين أداء الاستعلام. يمكنك أيضا ضغط البيانات لتقليل تكاليف التخزين وتحسين كفاءة نقل البيانات.
تحسين البنية
قم بتقييم بنية حمل العمل لتحديد فرص تحسين الموارد. الهدف هو استخدام الخدمات المناسبة للوظيفة الصحيحة.
للوصول إلى هذا الهدف، قد تحتاج إلى إعادة تصميم أجزاء من البنية لاستخدام موارد أقل. ضع في اعتبارك الخدمات بلا خادم أو المدارة، وقم بتحسين تخصيص الموارد. من خلال تحسين البنية الخاصة بك، يمكنك تلبية المتطلبات الوظيفية وغير الوظيفية مع استهلاك موارد أقل لكل مثيل.
استخدام أنماط التصميم
أنماط التصميم هي حلول قابلة لإعادة الاستخدام تساعد المطورين على حل مشكلات التصميم المتكررة. وهي توفر نهجا منظما لتصميم التعليمات البرمجية الفعالة والقابلة للصيانة وقابلة للتطوير.
تساعد أنماط التصميم على تحسين استخدام موارد النظام من خلال توفير إرشادات لتخصيص الموارد وإدارتها بكفاءة. على سبيل المثال، يساعد نمط قاطع الدائرة على منع استهلاك الموارد غير الضروري من خلال توفير آلية للتعامل مع حالات الفشل والتعافي منها بطريقة خاضعة للرقابة.
يمكن أن تساعد أنماط التصميم في تحسين التكلفة للتعليمات البرمجية بالطرق التالية:
تقليل وقت التطوير: توفر أنماط التصميم حلولا مثبتة لمشاكل التصميم الشائعة، والتي يمكن أن توفر وقت التطوير. باتباع الأنماط الراسخة، يمكن للمطورين تجنب العمل المتكرر والتركيز على تنفيذ المتطلبات المحددة لتطبيقاتهم.
إمكانية الصيانة المحسنة: تعزز أنماط التصميم التعليمات البرمجية المعيارية والمهيكلة التي يسهل فهمها وتعديلها وصيانتها. ويمكن أن تؤدي إلى وفورات في التكاليف من حيث خفض جهود تصحيح الأخطاء والصيانة.
قابلية التوسع والأداء: تساعد أنماط التصميم في تصميم أنظمة قابلة للتطوير وأداء. يمكن لأنماط مثل نمط Cache-Aside تحسين الأداء عن طريق التخزين المؤقت للبيانات التي يتم الوصول إليها بشكل متكرر لتقليل الحاجة إلى حسابات باهظة الثمن أو مكالمات خارجية.
لتنفيذ أنماط التصميم، يحتاج المطورون إلى فهم مبادئ وإرشادات كل نمط وتطبيقها في التعليمات البرمجية. ضع في اعتبارك تحديد النمط المناسب لمشكلة ما، وفهم بنيتها ومكوناتها، ودمج النمط في التصميم العام.
تتوفر موارد مختلفة، مثل الوثائق والبرامج التعليمية ونموذج التعليمات البرمجية. يمكن أن تساعد هذه الموارد المطورين على تعلم أنماط التصميم وتنفيذها بفعالية.
تغيير التكوينات
راجع تكوين حمل العمل وتحديثه بانتظام للتأكد من أنه يتوافق مع متطلباتك الحالية. ضع في اعتبارك ضبط حجم الموارد وإعدادات التكوين استنادا إلى متطلبات حمل العمل. من خلال تحسين التكوينات، يمكنك تخصيص الموارد بشكل فعال وتجنب الإفراط في التوفير لتوفير التكاليف.
بنية إعادة بناء التعليمات البرمجية
تقييم بنية حمل العمل وتحديد فرص إعادة بناء التعليمات البرمجية أو إعادة تصميم المكونات لتحسين استهلاك الموارد. ضع في اعتبارك تقنيات مثل اعتماد بنية الخدمات المصغرة، وتنفيذ نمط قاطع الدائرة، واستخدام الحوسبة بلا خادم. من خلال تحسين البنية الخاصة بك، يمكنك تحقيق استخدام أفضل للموارد وكفاءة التكلفة.
تعديل أحجام الموارد
مراقبة وتحليل استخدام الموارد باستمرار لحمل العمل الخاص بك. استنادا إلى الأنماط والاتجاهات المرصودة، قم بضبط حجم الموارد وإعدادات التكوين لتحسين استهلاك الموارد.
ضع في اعتبارك حقوق الأجهزة الظاهرية، وضبط تخصيص الذاكرة، وتحسين سعة التخزين. من خلال حقوق الموارد، يمكنك تجنب التكاليف غير الضرورية المرتبطة بالاستغلال غير الضروري أو الإفراط في التوفير.
المفاضلة: قد لا تتوافق إعادة صياغة التعليمات البرمجية والهندسة المعمارية مع جداول المشروع الحالية وقد تؤدي إلى الجدول الزمني وتراجع التكلفة.
تسهيل Azure
رمز الأجهزة: يوفر Azure أدوات المراقبة والتسجيل مثل Azure MonitorوApplication InsightsوLog Analytics. يمكنك استخدام هذه الأدوات لتعقب وتحليل أداء وسلوك التعليمات البرمجية الخاصة بك في الوقت الفعلي.
تحديد المسارات الساخنة وتحسينها: يساعد Application Insights وApplication Insights Profiler في تحديد وتحسين المسارات الساخنة في التعليمات البرمجية الخاصة بك عن طريق تحليل أوقات التنفيذ واستخدام الموارد. يمكنك تقليل تخصيصات الذاكرة غير الضرورية وتحسين استخدام الذاكرة باستخدام محلل ملفات التعريف.
استخدام حزم SDK الصحيحة: تقدم Azure حزم SDK بلغات برمجة متعددة، محسنة للأداء وسهولة الاستخدام. توفر حزم SDK هذه وظائف ومكتبات تم إنشاؤها مسبقا تتفاعل مع خدمات Azure لتقليل الحاجة إلى التنفيذ المخصص.
تحسين اجتياز الشبكة: تدعم خدمات Azure المختلفة بروتوكولات الشبكة عالية السرعة مثل HTTP/2 و QUIC للاتصال الفعال بين الخدمات والتطبيقات.
تدعم خدمات Azure، مثل قاعدة بيانات Azure ل PostgreSQL - الخادم المرن، تجميع الاتصال.
يدعم Azure معالجة الدفعات في خدمات مختلفة، بحيث يمكنك تجميع عمليات متعددة معا وتشغيلها في طلب واحد. يمكن أن تؤدي معالجة الدفعات إلى تحسين الكفاءة بشكل كبير وتقليل النفقات العامة للشبكة.
فيما يتعلق بتسلسل البيانات، يدعم Azure تنسيقات التسلسل المختلفة، بما في ذلك JSON وXML. اختر تنسيق التسلسل المناسب استنادا إلى حجم البيانات ومتطلبات الأداء واحتياجات التشغيل التفاعلي.
تحسين الوصول إلى البيانات: يوفر Azure خدمات التخزين المؤقت مثل Azure Cache for Redis. يمكنك استخدام التخزين المؤقت لتخزين البيانات التي يتم الوصول إليها بشكل متكرر بالقرب من التطبيق، ما يؤدي إلى استرداد أسرع وتقليل الحمل الخلفي.
الفهرسة وتحسين الاستعلام: توفر خدمات Azure مثل Azure SQL DatabaseوAzure Cosmos DB إمكانات الفهرسة لتحسين أداء الاستعلام. من خلال اختيار استراتيجية الفهرسة الصحيحة وتحسين الاستعلامات، يمكنك تحسين الكفاءة الإجمالية لاسترداد البيانات.
تعيين الكائنات العلائقية (ORM): يدعم Azure أطر عمل ORM مثل Entity Framework. تبسط أطر العمل هذه الوصول إلى البيانات وتعيينها بين التعليمات البرمجية الموجهة للكائنات وقواعد البيانات الارتباطية أو NoSQL.
تحسين الإجراءات المخزنة: يمكنك استخدام خدمات Azure مثل قاعدة بيانات Azure SQL لإنشاء الإجراءات المخزنة وتحسينها. يمكن للإجراءات المخزنة تحسين الأداء عن طريق تقليل الرحلات ذهابا وجولة للشبكة والترجمة المسبقة لعبارات SQL.
التقسيم والتقسيم: يوفر Azure قدرات التقسيم والتقسيم في خدمات مثل Azure Cosmos DBوقاعدة بيانات Azure SQL. يمكنك استخدام التقسيم لتوزيع البيانات عبر عقد متعددة لقابلية التوسع وتحسين الأداء.
ضغط البيانات: تدعم خدمات Azure تقنيات ضغط البيانات مثل GZIP وDFLATE.
تحسين البنية: يوفر Azure إرشادات معمارية وأنماط تصميم لتصميم تطبيقات قابلة للتطوير ومرونة وأداء. لمزيد من المعلومات، راجع أنماط التصميم.
الارتباطات ذات الصلة
- Azure Monitor
- Application Insights
- Log Analytics
- Application Insights Profiler
- تجمّعات الاتصال
- قاعدة بيانات Azure ل PostgreSQL - تجميع اتصال الخادم المرن
- ضبط فهرس قاعدة بيانات Azure SQL
- نُهج الفهرسة في Azure Cosmos DB
- تقسيم Azure Cosmos DB
- تقسيم قاعدة بيانات Azure SQL
قائمة التحقق من تحسين التكلفة
راجع المجموعة الكاملة من التوصيات.