القياس التلقائي لنقطة نهاية عبر الإنترنت

ينطبق على:ملحق التعلم الآلي من Azure CLI v2 (الحالي)Python SDK azure-ai-ml v2 (الحالي)

يقوم التحجيم التلقائي بتشغيل المقدار المناسب من الموارد للتعامل مع الحِمل على تطبيقك. نقاط النهاية عبر الإنترنت يدعم القياس التلقائي من خلال التكامل مع ميزة القياس التلقائي لـ Azure Monitor.

يدعم القياس التلقائي لـ Azure Monitor مجموعة غنية من القواعد. يمكنك تكوين القياس المستند إلى القياسات (على سبيل المثال، استخدام وحدة المعالجة المركزية >70%)، أو القياس المستند إلى الجدول الزمني (على سبيل المثال، قواعد القياس لساعات العمل القصوى)، أو مجموعة. لمزيد من المعلومات، راجع نظرة عامة على التحجيم التلقائي في Microsoft Azure.

Diagram for autoscale إضافة/إزالة مثيل حسب الحاجة

اليوم، يمكنك إدارة القياس التلقائي باستخدام إما Azure CLI أو REST أو ARM أو مدخل Microsoft Azure المستندة إلى المستعرض. ستضيف مجموعات SDK الأخرى للتعلم الآلي من Microsoft Azure، مثل Python SDK، الدعم بمرور الوقت.

المتطلبات الأساسية

تعريف ملف تعريف التحجيم التلقائي

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

ينطبق على:ملحق Azure CLI ml الإصدار 2 (الحالي)

تعيّن القصاصة البرمجية التالية اسمي نقطة النهاية والتوزيع:

# set your existing endpoint name
ENDPOINT_NAME=your-endpoint-name
DEPLOYMENT_NAME=blue

بعد ذلك، احصل على معرف Azure Resource Manager للتوزيع ونقطة النهاية:

# ARM id of the deployment
DEPLOYMENT_RESOURCE_ID=$(az ml online-deployment show -e $ENDPOINT_NAME -n $DEPLOYMENT_NAME -o tsv --query "id")
# ARM id of the deployment. todo: change to --query "id"
ENDPOINT_RESOURCE_ID=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query "properties.\"azureml.onlineendpointid\"")
# set a unique name for autoscale settings for this deployment. The below will append a random number to make the name unique.
AUTOSCALE_SETTINGS_NAME=autoscale-$ENDPOINT_NAME-$DEPLOYMENT_NAME-`echo $RANDOM`

تنشئ القصاصة البرمجية التالية ملف تعريف تحجيم تلقائي:

az monitor autoscale create \
  --name $AUTOSCALE_SETTINGS_NAME \
  --resource $DEPLOYMENT_RESOURCE_ID \
  --min-count 2 --max-count 5 --count 2

ملاحظة

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

إنشاء قاعدة للتوسع باستخدام القياسات

قاعدة القياس الشائعة هي تلك التي تزيد من عدد مثيلات الجهاز الظاهري عندما يكون متوسط ​​حمل وحدة المعالجة المركزية مرتفعاً. سيخصص المثال التالي عقدتين أخريين (بحد أقصى) إذا كان متوسط ​​حمل وحدة المعالجة المركزية أكبر من 70% لمدة خمس دقائق:

ينطبق على:ملحق Azure CLI ml الإصدار 2 (الحالي)

az monitor autoscale rule create \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --condition "CpuUtilizationPercentage > 70 avg 5m" \
  --scale out 2

القاعدة جزء من ملف التعريف my-scale-settings (autoscale-name يتطابق مع name ملف التعريف). تشير قيمة الوسيطة condition إلى أنه يجب تشغيل القاعدة عندما "يتجاوز متوسط ​​استهلاك وحدة المعالجة المركزية بين مثيلات الجهاز الظاهري 70% لمدة خمس دقائق". عند استيفاء هذا الشرط، يتم تخصيص مثيلات أخرى للجهاز الظاهري.

ملاحظة

لمزيد من المعلومات حول بنية CLI، راجع az monitor autoscale.

إنشاء قاعدة لتوسيع نطاق استخدام القياسات

عندما يكون الحمل خفيفاً، يمكن أن يؤدي القياس في القاعدة إلى تقليل عدد مثيلات الجهاز الظاهري. سيحرر المثال التالي عقدة واحدة، إلى حد أدنى 2، إذا كان حمل وحدة المعالجة المركزية أقل من 30% لمدة 5 دقائق:

ينطبق على:ملحق CLI للتعلم الآلي من Azure v2 (الحالي)

az monitor autoscale rule create \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --condition "CpuUtilizationPercentage < 25 avg 5m" \
  --scale in 1

إنشاء قاعدة تحجيم بناءً على قياسات نقطة النهاية

تم تطبيق القواعد السابقة على التوزيع. الآن، أضف قاعدة تنطبق على نقطة النهاية. في هذا المثال، إذا كان وقت استجابة الطلب أكبر من متوسط ​​70 ملّي ثانية لمدة 5 دقائق، فخصص عقدة أخرى.

ينطبق على:ملحق CLI للتعلم الآلي من Azure v2 (الحالي)

az monitor autoscale rule create \
 --autoscale-name $AUTOSCALE_SETTINGS_NAME \
 --condition "RequestLatency > 70 avg 5m" \
 --scale out 1 \
 --resource $ENDPOINT_RESOURCE_ID

إنشاء قواعد القياس على أساس الجدول الزمني

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

ينطبق على:ملحق CLI للتعلم الآلي من Azure v2 (الحالي)

az monitor autoscale profile create \
  --name weekend-profile \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --min-count 2 --count 2 --max-count 2 \
  --recurrence week sat sun --timezone "Pacific Standard Time"

حذف الموارد

إذا كنت لا تنوي استخدام عمليات التوزيع الخاصة بك، فاحذفها:

ينطبق على:ملحق CLI للتعلم الآلي من Azure v2 (الحالي)

# delete the autoscaling profile
az monitor autoscale delete -n "$AUTOSCALE_SETTINGS_NAME"

# delete the endpoint
az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait

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

لمعرفة المزيد حول القياس التلقائي باستخدام Azure Monitor، راجع المقالات التالية: