توصيات لتحسين التحجيم والتقسيم

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

PE:05 تحسين التحجيم والتقسيم. دمج التحجيم والتقسيم الموثوق به والمتحكم فيه. تصميم وحدة المقياس لحمل العمل هو أساس استراتيجية التحجيم والتقسيم.

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

التعريفات

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

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

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

تحسين التحجيم

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

اختيار استراتيجية التحجيم

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

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

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

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

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

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

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

تصميم البنية الأساسية لتوسيع نطاقها

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

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

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

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

  • أنماط التصميم: يمكن أن تساعد أنماط التصميم مثل Fan-out/Fan-in أو Pipes و Filters في تجنب المفردات في مهام سير العمل. تتيح هذه الأنماط توزيع مهام المعالجة عبر موارد متعددة وتعزز قابلية التوسع والمرونة.

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

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

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

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

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

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

تصميم تطبيق لتوسيع نطاقه

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

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

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

  • اختر حلا. حدد حل تخزين يتوافق مع احتياجات الأداء وقابلية التوسع. تتضمن الخيارات استخدام ذاكرة تخزين مؤقت موزعة أو قاعدة بيانات أو خدمة حالة جلسة عمل. ضع في اعتبارك عوامل مثل تناسق البيانات وا لزمن الانتقال وقابلية التوسع عند اختيارك.

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

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

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

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

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

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

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

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

  2. تصميم التطبيق الخاص بك لدعم مهام الخلفية. فصل المهام المكثفة عن منطق التطبيق الرئيسي وتوفير آلية لبدء مهام الخلفية وإدارتها.

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

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

تكوين القياس

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

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

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

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

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

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

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

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

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

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

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

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

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

اختبار التحجيم

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

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

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

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

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

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

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

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

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

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

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

حمل عمل القسم

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

فهم التقسيم

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

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

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

  • التقسيم الوظيفي: في هذا النهج، يتم تقسيم البيانات أو حمل العمل استنادا إلى الوظائف أو العمليات المحددة التي يجب تنفيذها. يحتوي كل قسم على البيانات أو المكونات اللازمة لوظيفة معينة، ما يتيح المعالجة والأداء المحسنين.

تخطيط التقسيم

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

تنفيذ التقسيم

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

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

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

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

اختبار التقسيم وتحسينه

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

المفاضلة: يضيف التقسيم تعقيدا إلى تصميم وتطوير حمل العمل. يتطلب التقسيم محادثات وتخطيطا بين المطورين ومسؤولي قاعدة البيانات.

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

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

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

تسهيل Azure

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

يسمح لك Azure Monitor بمراقبة المقاييس والشروط المختلفة في التطبيقات والبنية الأساسية الخاصة بك. يمكنك استخدام Monitor لتشغيل إجراءات التحجيم التلقائي استنادا إلى قواعد محددة مسبقا. على سبيل المثال، في Azure Kubernetes Service (AKS)، يمكنك استخدام Monitor لتمكين التحجيم التلقائي للحجيرة الأفقية (HPA) والتحجيم التلقائي للمجموعة. باستخدام قدرات المراقبة والتنبيه الخاصة ب Monitor، يمكنك تسهيل التحجيم بفعالية في Azure والمساعدة في ضمان إمكانية ضبط تطبيقاتك والبنية الأساسية ديناميكيا لتلبية الطلب.

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

تصميم التطبيق لتوسيع نطاقه: فيما يلي بعض الطرق التي يسهل بها Azure تصميم تحجيم التطبيق؛

  • القضاء على تأمين البيانات: في قاعدة بيانات Azure SQL، يمكنك تمكين التأمين المحسن لتحسين الأداء على قواعد البيانات التي تتطلب تناسقا صارما.

  • استخدام مهام الخلفية: يقدم Azure خدمات وإرشادات لتنفيذ وظائف الخلفية. لمزيد من المعلومات، راجع مهام الخلفية.

  • تنفيذ موازنة التحميل: يوفر Azure موازنات تحميل لا تتطلب ترابط العميل. تتضمن موازنات التحميل هذه Azure Front DoorوAzure Application GatewayوAzure Load Balancer.

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

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

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