الاضطراب في التحجيم التلقائي

توضح هذه المقالة الاضطراب في التحجيم التلقائي وكيفية تجنبه.

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

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

لضمان الموارد الكافية، فإن التحقق من الاضطراب المحتمل لا يحدث لأحداث التوسيع. سيُؤجل التحجيم التلقائي حدث التضييق فقط لتجنب الاضطراب.

لنفترض القواعد التالية على سبيل المثال:

  • زيادة التوسيع بمقدار مثيل 1 عندما يكون متوسط استخدام وحدة المعالجة المركزية أعلى من 50٪.
  • انخفاض التضييق في عدد المثيلات بمقدار مثيل 1 عندما يكون متوسط استخدام وحدة المعالجة المركزية أقل من 30٪.

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

الوقت عدد المثيلات CPU% CPU% لكل مثيل حدث تغيير الحجم عدد المثيلات الناتجة
T0 1 56% 56% التوسيع 2
T1 2 56% 28% التضييق 1
T2 1 56% 56% التوسيع 2
T3 2 56% 28% التضييق 1

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

غالباً ما يحدث الاضطراب بسبب:

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

وجود هوامش صغيرة بين الحدود أو عدم وجودها

اجعل الهوامش بين حدود التحجيم مناسبة لتجنب الاضطراب.

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

  • التوسيع عندما يكون عدد مؤشرات الترابط >=600
  • التضييق عندما يكون عدد مؤشرات الترابط < 600

لقطة شاشة تعرض قواعد التحجيم التلقائي مع التوسيع عندما يكون عدد مؤشرات الترابط أكبر من أو يساوي 600، والتضييق عندما يكون عدد مؤشرات الترابط أقل من 600.

يوضح الجدول أدناه نتيجة محتملة لقواعد التحجيم التلقائي هذه:

الوقت عدد المثيلات عدد مؤشرات الترابط عدد مؤشرات الترابط لكل مثيل حدث تغيير الحجم عدد المثيلات الناتجة
T0 2 1250 625 التوسيع 3
T1 3 1250 417 التضييق 2
  • في الوقت T0، هناك مثيلان يعالجان 1250 مؤشر ترابط أو 625 مؤشر ترابط لكل مثيل. يتوسع التحجيم التلقائي إلى ثلاثة مثيلات.
  • بعد التوسيع، لدينا في T1 نفس عدد مؤشرات الترابط، 1250، ولكن مع ثلاثة مثيلات، أي 417 مؤشر ترابط فقط لكل مثيل. يُجرى تشغيل حدث التضييق.
  • قبل التضييق، يُقيّم التحجيم التلقائي ما قد يحدث في حالة إجراء حدث التضييق. في هذا المثال، 1250 / 2 = 625، أي 625 مؤشر ترابط لكل مثيل. يجب أن يتوسع التحجيم التلقائي على الفور مرة أخرى بعد تضييقه. ستتكرر العملية إذا توسّع مرة أخرى، ما سينتج عنه تكرار حلقي للاضطراب.
  • لتجنب هذا الوضع، لا يُجري التحجيم التلقائي التضييق. يتخطى التحجيم التلقائي حدث تغيير الحجم الحالي ويعيد تقييم القاعدة في دورة التنفيذ التالية.

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

لقطة شاشة تعرض علامة تبويب

يؤدي تعيين هامش مناسب بين الحدود إلى تجنب السيناريو أعلاه. على سبيل المثال،

  • التوسيع عندما يكون عدد مؤشرات الترابط >=600
  • التضييق عندما يكون عدد مؤشرات الترابط < 400

لقطة شاشة تعرض قواعد التحجيم التلقائي مع التوسيع عندما يكون عدد مؤشرات الترابط أكبر من أو يساوي 600، والتضييق عندما يكون عدد مؤشرات الترابط أقل من 400.

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

الوقت عدد المثيلات عدد مؤشرات الترابط عدد مؤشرات الترابط لكل مثيل حدث تغيير الحجم عدد المثيلات الناتجة
T0 2 1250 625 التوسيع 3
T1 3 1250 417 لا يوجد حدث تغيير الحجم 3
T2 3 1180 394 التضييق 2
T3 3 1180 590 لا يوجد حدث تغيير الحجم 2

التحجيم بأكثر من مثيل

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

على سبيل المثال، يمكن أن تتسبب القواعد التالية في حدوث الاضطراب:

  • التوسيع بمقدار 20 عندما يكون عدد الطلبات >=200 لكل مثيل.
  • أو عندما يكون CPU > 70% لكل مثيل.
  • التضييق بمقدار 10 عندما يكون عدد الطلبات <=50 لكل مثيل.

لقطة شاشة تعرض حالة مقياس افتراضي للتحجيم التلقائي مع قواعد مُكوّنة للمثال.

يوضح الجدول أدناه نتيجة محتملة لقواعد التحجيم التلقائي هذه:

الوقت عدد المثيلات CPU عدد الطلبات حدث تغيير الحجم المثيلات الناتجة التعليقات
T0 30 65% 3000 أو 100 لكل مثيل. لا يوجد حدث تغيير الحجم 30
T1 30 65 1500 التضييق بمقدار 3 مثيلات 27 سيؤدي التضييق بمقدار 10 إلى زيادة متوقعة لوحدة المعالجة المركزية فوق 70٪، ما يؤدي إلى حدث التوسيع.

في الوقت T0، يعمل التطبيق مع وجود 30 مثيل، وإجمالي عدد الطلبات 3000، واستخدام وحدة المعالجة المركزية بنسبة 65٪ لكل مثيل.

في T1، عندما ينخفض عدد الطلبات إلى 1500 طلب أو إلى 50 طلب لكل مثيل، فسيحاول التحجيم التلقائي التضييق بمقدار 10 إلى 20 مثيل. مع ذلك، يستنتج التحجيم التلقائي أن تحميل وحدة المعالجة المركزية لـ 20 مثيل سيكون أعلى من 70٪، ما يتسبب في حدث التوسيع.

لتجنب الاضطراب، يقيّم محرك التحجيم التلقائي استخدام وحدة المعالجة المركزية لعدد المثيلات التي تزيد عن 20 حتى يعثر على عدد مثيلات حيث تكون جميع المقاييس ضمن الحدود المحددة:

  • جعل وحدة المعالجة المركزية أقل من 70٪.
  • جعل عدد الطلبات لكل مثيل أعلى من 50.
  • تقليل عدد المثيلات لأقل من 30.

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

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

إشعار

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

ملفات السجل

ابحث عن الاضطراب في سجل النشاط باستخدام الاستعلام التالي:

// Activity log, CategoryValue: Autoscale
// Lists latest Autoscale operations from the activity log, with OperationNameValue =="Microsoft.Insights/AutoscaleSettings/Flapping/Action
AzureActivity
|where CategoryValue =="Autoscale" and OperationNameValue =="Microsoft.Insights/AutoscaleSettings/Flapping/Action"
|sort by TimeGenerated desc 

فيما يلي مثال على تسجيل سجل نشاط للاضطراب:

لقطة شاشة تعرض تسجيل سجل من حدث الاضطراب.

{
"eventCategory": "Autoscale",
"eventName": "FlappingOccurred",
"operationId": "1111bbbb-22cc-dddd-ee33-ffffff444444",
"eventProperties": 
    "{"Description":"Scale down will occur with updated instance count to avoid flapping. 
     Resource: '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/ed-rg-001/providers/Microsoft.Web/serverFarms/ScaleableAppServicePlan'.
     Current instance count: '6', 
     Intended new instance count: '1'.
     Actual new instance count: '4'",
    "ResourceName":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-001/providers/Microsoft.Web/serverFarms/ScaleableAppServicePlan",
    "OldInstancesCount":6,
    "NewInstancesCount":4,
    "ActiveAutoscaleProfile":{"Name":"Auto created scale condition",
    "Capacity":{"Minimum":"1","Maximum":"30","Default":"1"},
    "Rules":[{"MetricTrigger":{"Name":"Requests","Namespace":"microsoft.web/sites","Resource":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","ResourceLocation":"West Central US","TimeGrain":"PT1M","Statistic":"Average","TimeWindow":"PT1M","TimeAggregation":"Maximum","Operator":"GreaterThanOrEqual","Threshold":3.0,"Source":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ed-rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","MetricType":"MDM","Dimensions":[],"DividePerInstance":true},"ScaleAction":{"Direction":"Increase","Type":"ChangeCount","Value":"10","Cooldown":"PT1M"}},{"MetricTrigger":{"Name":"Requests","Namespace":"microsoft.web/sites","Resource":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","ResourceLocation":"West Central US","TimeGrain":"PT1M","Statistic":"Max","TimeWindow":"PT1M","TimeAggregation":"Maximum","Operator":"LessThan","Threshold":3.0,"Source":"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ed-rg-001/providers/Microsoft.Web/sites/ScaleableWebApp1","MetricType":"MDM","Dimensions":[],"DividePerInstance":true},"ScaleAction":{"Direction":"Decrease","Type":"ChangeCount","Value":"5","Cooldown":"PT1M"}}]}}",
"eventDataId": "dddd3333-ee44-5555-66ff-777777aaaaaa",
"eventSubmissionTimestamp": "2022-09-13T07:20:41.1589076Z",
"resource": "scaleableappserviceplan",
"resourceGroup": "RG-001",
"resourceProviderValue": "MICROSOFT.WEB",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"activityStatusValue": "Succeeded"
}

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

لمعرفة المزيد حول التحجيم التلقائي، راجع الموارد التالية: