إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تقدم Azure Batch آلات افتراضية (VMs) من Spot لتقليل تكلفة أعباء العمل الجماعية. تجعل الأجهزة الظاهرية الموضعية أنواعا جديدة من أحمال عمل الدفعات ممكنة من خلال تمكين كمية كبيرة من طاقة الحوسبة لاستخدامها بتكلفة منخفضة.
تستفيد النماذج الافتراضية الفورية من السعة الفائضة في Azure. تختلف كمية السعة الفائضة المتاحة حسب عوامل مثل عائلة VM، حجم VM، المنطقة، ووقت اليوم. عندما تحدد أجهزة Spot VM في مجموعاتك، يمكن ل Azure Batch استخدام هذا الفائض عندما يكون متاحا.
المقابل عند استخدام الأجهزة الافتراضية الفورية هو أن هذه الأجهزة لا تحتوي على اتفاقية مستوى خدمة أو ضمانات توفر. يمكن إيقاف الآلات الافتراضية الفورية في أي وقت، بما في ذلك فور إنشاء الآلة الافتراضية. لهذا السبب، فإن Spot VMs هي الأنسب لأحمال عمل المعالجة المجمعة وغير المتزامنة حيث يكون وقت إكمال المهمة مرناً، ويتم توزيع العمل عبر العديد من الأجهزة الظاهرية.
إذا حدث استبعاد، سيتم إخلاء عقدة الحوسبة الفورية وسيتم فقدان كل العمل الذي لم يتم التحقق منه بشكل مناسب. تعد نقاط التحقق اختيارية وينتهي الأمر بالمستخدم النهائي Batch لتنفيذها. ستتم إعادة قائمة انتظار مهمة الدفعة قيد التشغيل التي تمت مقاطعتها بسبب الاستباق تلقائيا للتنفيذ بواسطة عقدة حساب مختلفة. قد يتم استعادة الآلة الافتراضية التي تم استبعادها لاحقا بواسطة منصة Azure، لكن محاولة الاستعادة تتم فقط خلال أول 48 ساعة بعد الإلغاء ولا يضمن النجاح في النهاية.
يتم تقديم Spot VMs بسعر مخفض مقارنة بالأجهزة الظاهرية المخصصة. لمعرفة المزيد حول التسعير، راجع تسعير الدفعة.
دعم Batch لـ Spot VMs
يوفر Azure Batch عدة قدرات تجعل من السهل استهلاكها والاستفادة من أجهزة Spot الافتراضية:
- يمكن أن تحتوي تجمعات Batch على أجهزة ظاهرية مخصصة وأجهزة Spot VMs. يمكن تحديد عدد كل نوع من أنواع الأجهزة الظاهرية عند إنشاء تجمع أو تغييره في أي وقت لتجمع موجود، باستخدام عملية تغيير الحجم الصريحة أو باستخدام التحجيم التلقائي. يمكن أن يظل إرسال المهمة والمهمة دون تغيير، بغض النظر عن أنواع الأجهزة الظاهرية في التجمع. يمكنك أيضاً تكوين تجمع لاستخدام Spot VMs تماماً لتشغيل الوظائف بأقل تكلفة ممكنة، ولكن قم بتدوير الأجهزة الظاهرية المخصصة إذا انخفضت السعة إلى ما دون الحد الأدنى، للحفاظ على تشغيل الوظائف.
- تسعى مجموعات Batch تلقائياً إلى البحث عن العدد المستهدف لأجهزة Spot VMs. إذا تم استباق الأجهزة الظاهرية أو عدم توفرها، يحاول Batch استبدال السعة المفقودة والعودة إلى الهدف.
- عند مقاطعة المهام، يكتشف Batch المهام ويعيد ترتيبها تلقائياً للتشغيل مرة أخرى.
- تحتوي أجهزة Spot VMs على حصة منفصلة لوحدة المعالجة المركزية الظاهرية تختلف عن تلك المخصصة للأجهزة الظاهرية المخصصة. الحصة النسبية لأجهزة Spot VMs أعلى من الحصة المخصصة للأجهزة الظاهرية المخصصة، لأن تكلفة أجهزة Spot VMs أقل. لمزيد من المعلومات، راجع حصص الخدمة المجمعة وحدودها.
الاعتبارات وحالات الاستخدام
تعد العديد من أحمال العمل المجمعة مناسبة تماماً لأجهزة Spot VMs. ضع في اعتبارك استخدام Spot VMs عند تقسيم المهام إلى العديد من المهام المتوازية، أو عندما يكون لديك العديد من الوظائف التي يتم توسيع نطاقها وتوزيعها عبر العديد من الأجهزة الظاهرية.
بعض الأمثلة على حالات استخدام معالجة الدفعات المناسبة تماما ل Spot VMs هي:
- التطوير والاختبار: على وجه الخصوص، إذا تم تطوير حلول واسعة النطاق، يمكن تحقيق وفورات كبيرة. يمكن أن تستفيد جميع أنواع الاختبارات، ولكن اختبار الحمل على نطاق واسع واختبار الانحدار من الاستخدامات الرائعة.
- استكمال السعة عند الطلب: يمكن استخدام أجهزة Spot VMs لتكملة الأجهزة الظاهرية المخصصة العادية. عندما تكون متاحة، يمكن توسيع نطاق الوظائف وبالتالي إكمالها بشكل أسرع بتكلفة أقل؛ في حالة عدم توفرها، يظل خط الأساس لأجهزة VM المخصصة متاحاً.
- وقت تنفيذ الوظيفة المرن: إذا كانت هناك مرونة في الوقت الذي يجب أن تكتمل فيه الوظائف، فيمكن التسامح مع الانخفاضات المحتملة في السعة. ومع ذلك، مع إضافة Spot VMs، تعمل المهام بشكل متكرر بشكل أسرع وبتكلفة أقل.
يمكن تكوين مجموعات الدُفعات لاستخدام أجهزة Spot VMs بعدة طرق:
- يمكن للتجمع استخدام Spot VMs فقط. في هذه الحالة، تستعيد Batch أي سعة تم استباقها عند توفرها. هذا التكوين هو أرخص وسيلة لتنفيذ المهام.
- يمكن استخدام Spot VMs مع أساس ثابت من الأجهزة الظاهرية المخصصة. يضمن العدد الثابت للأجهزة الظاهرية المخصصة وجود بعض السعة دائما للحفاظ على تقدم الوظيفة.
- يمكن للتجمع استخدام مزيج ديناميكي من الأجهزة الظاهرية المخصصة وSpot VMs، بحيث يتم استخدام أجهزة Spot الظاهرية الأرخص فقط عند توفرها، ولكن يتم توسيع نطاق الأجهزة الظاهرية المخصصة كاملة السعر عند الحاجة. يحافظ هذا التكوين على الحد الأدنى من السعة المتاحة للحفاظ على تقدم المهام.
ضع في اعتبارك الممارسات التالية عند التخطيط لاستخدام Spot VMs:
- لتعظيم استخدام السعة الفائضة في Azure، يمكن توسيع الوظائف المناسبة.
- في بعض الأحيان، قد لا تتوفر الأجهزة الظاهرية أو يتم استباقها، مما يؤدي إلى انخفاض القدرة على الوظائف وقد يؤدي إلى انقطاع المهام وإعادة التشغيل.
- تميل المهام ذات أوقات التنفيذ الأقصر إلى العمل بشكل أفضل مع أجهزة Spot VMs. قد تتأثر المهام ذات المهام الأطول بشكل أكبر إذا تمت مقاطعتها. إذا نفذت المهام طويلة الأمد نقاط التحقق لحفظ التقدم أثناء تنفيذها، فقد يتم تقليل هذا التأثير.
- وظائف MPI طويلة الأمد التي تستخدم أجهزة ظاهرية متعددة ليست مناسبة تماما ل Spot VMs، لأن جهازا ظاهريا واحدا مسبقا يمكن أن يؤدي إلى الحاجة إلى تشغيل المهمة بأكملها مرة أخرى.
- قد يتم وضع علامة على العقد ذات الأولوية المرتفعة على أنها غير قابلة للاستخدام إذا تم تكوين قواعد مجموعة أمان الشبكة (NSG) بشكلٍ غير صحيح.
إنشاء مجموعات وإدارتها باستخدام Spot VMs
يمكن أن يحتوي تجمع Batch على أجهزة ظاهرية مخصصة وأجهزة Spot VMs (يشار إليها أيضاً باسم عقد الحوسبة). يمكنك تعيين العدد المستهدف لعقد الحوسبة لكل من الأجهزة الظاهرية المخصصة وأجهزة Spot VMs. يحدد العدد المستهدف للعقد عدد الأجهزة الظاهرية التي تريدها في التجمع.
قد يتم استباق Spot VMs أحيانا. عند حدوث الاستباق، تتم إعادة ترتيب المهام التي كانت تعمل على الأجهزة الظاهرية للعقدة التي تم استباقها وتشغيلها مرة أخرى عند إرجاع السعة. تقوم الدفعة أيضا بأداء السلوكيات التالية:
- تم تحديث حال أجهزة VM التي تم استباقها إلى Prepempted.
- يتم حذف الجهاز الظاهري بشكل فعال، مما يؤدي إلى فقدان أي بيانات مخزنة محلياً على الجهاز الظاهري.
- لا تزال عملية عقد القائمة على التجمع ترجع العقد التي تم استباقها.
- يحاول التجمع باستمرار الوصول إلى العدد المستهدف للعقد ذات الأولوية المرتفعة المتاحة. عند العثور على سعة الاستبدال، تحتفظ العقد بالمعرف الخاص بها، ولكن تتم إعادة تهيئتها، مرورا بحالات الإنشاء والبدءقبل أن تكون متاحة لجدولة المهام.
- تتوفر عداد الاستحواذ كمقياس في بوابة Azure.
Azure Batch SDK
المثال التالي ينشئ تجمع باستخدام آلات افتراضية من Azure، وفي هذه الحالة أجهزة لينكس الافتراضية، مع هدف من 5 أجهزة افتراضية مخصصة و20 آلة افتراضية سبوت:
ImageReference imageRef = new ImageReference(
publisher: "Canonical",
offer: "ubuntu-24_04-lts",
sku: "server",
version: "latest");
// Create the pool
VirtualMachineConfiguration virtualMachineConfiguration =
new VirtualMachineConfiguration("batch.node.ubuntu 24.04", imageRef);
pool = batchClient.PoolOperations.CreatePool(
poolId: "vmpool",
targetDedicatedComputeNodes: 5,
targetLowPriorityComputeNodes: 20,
virtualMachineSize: "Standard_D4s_v3",
virtualMachineConfiguration: virtualMachineConfiguration);
يمكنك الحصول على العدد الحالي من العقد لكل من الأجهزة الظاهرية المخصصة وأجهزة Spot VMs:
int? numDedicated = pool1.CurrentDedicatedComputeNodes;
int? numLowPri = pool1.CurrentLowPriorityComputeNodes;
تحتوي عُقد التجمع على خاصية للإشارة إلى ما إذا كانت العقدة جهازاً ظاهريّاً مخصصاً أم جهاز Spot VM:
bool? isNodeDedicated = poolNode.IsDedicated;
كما هو الحال مع التجمعات التي تتكون فقط من أجهزة ظاهرية مخصصة، من الممكن توسيع نطاق تجمع يحتوي على Spot VMs عن طريق استدعاء Resize الأسلوب أو باستخدام التحجيم التلقائي.
تستغرق عملية تغيير حجم التجمع معلمة اختيارية ثانية تقوم بتحديث قيمة targetLowPriorityNodes:
pool.Resize(targetDedicatedComputeNodes: 0, targetLowPriorityComputeNodes: 25);
Azure CLI
أنشئ مجموعة جديدة باستخدام نسخ Spot:
az batch pool create \
--id "vmpool" \
--vm-size "Standard_D4s_v3" \
--target-dedicated-nodes 5 \
--target-low-priority-nodes 20 \
--enable-inter-node-communication false \
--image "Canonical:ubuntu-24_04-lts:server" \
--node-agent-sku-id "batch.node.ubuntu 24.04" \
--account-name <your-batch-account-name> \
--account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com"
قم بتوسيع المجموعة الحالية لاستخدام مثيلات Spot:
az batch pool resize \
--pool-id <existing-pool-id> \
--target-dedicated-nodes 5 \
--target-low-priority-nodes 20 \
--account-name <your-batch-account-name> \
--account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com"
تحقق من حالة المجموعة وتخصيص العقدة
az batch pool show \
--account-name <your-batch-account-name> \
--account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com" \
--pool-id <your-pool-id> \
--query "{State:state, CurrentSpotNodes:currentLowPriorityNodes, TargetSpotNodes:scaleSettings.targetLowPriorityNodes, ResizeErrors:resizeErrors}"
Azure PowerShell
أنشئ مجموعة باستخدام نسخ Spot:
New-AzBatchPool `
-Id "vmpool" `
-VirtualMachineSize "Standard_D4s_v3" `
-TargetDedicatedComputeNodes 5 `
-TargetLowPriorityComputeNodes 20 `
-VirtualMachineImageId "/subscriptions/{subscription}/resourceGroups/{rg}/providers/Microsoft.Compute/images/{image}" `
-BatchContext $context
التحقق باستخدام PowerShell:
$pool = Get-AzBatchPool -Id "vmpool" -BatchContext $context
$pool | Select-Object Id, VmSize, @{Name="SpotNodes";Expression={$_.TargetLowPriorityComputeNodes}}, State
Azure portal
في بوابة Azure، اختر حساب Batch وعرض مجموعة موجودة أو أنشئ مجموعة جديدة.
ضمن Scale، حدد إما Target dedicated nodes أو Target Spot/low-priority nodes.
بالنسبة لتجمع موجود، اختر التجمع، ثم اختر المقياس لتحديث عدد عقد النقاط المطلوبة.
حَدِّد حِفظ.
التكبير التلقائي باستخدام الأجهزة الافتراضية الفورية
بالإضافة إلى تحديد عدد الآلات الافتراضية المستهدفة مباشرة، يمكنك اختياريا تعريف صيغة تدرج تلقائي لمجموعتك. تدعم صيغة المقياس التلقائي للتجمع أجهزة Spot VMs على النحو التالي:
- يمكنك الحصول على قيمة المتغير المحدد بواسطة الخدمة أو تعيينها
$TargetLowPriorityNodes. - يمكنك الحصول على قيمة المتغير
$CurrentLowPriorityNodesالمحدد من قبل الخدمة . - يمكنك الحصول على قيمة المتغير
$PreemptedNodeCountالمحدد من قبل الخدمة . يقوم هذا المتغير بإرجاع عدد العقد في حالة الاستباق، ويسمح لك بزيادة أو تقليل عدد العُقد المخصصة، اعتماداً على عدد العُقد التي تم استباقها، والتي لا تتوفر.
لمزيد من المعلومات، راجع دليل التدرج التلقائي للدفعات.
تكوين الوظائف والمهام
قد تتطلب المهام والمهام بعض التكوين الإضافي لعقد Spot:
- خاصية
JobManagerTaskالوظيفة لها خاصيةAllowLowPriorityNode. عندما تكون هذه الخاصية صحيحة، يمكن جدولة مهمة مدير الوظيفة على عقدة مخصصة، أو عقدة ذات أولوية مرتفعة. إذا كانت خاطئة، تتم جدولة مهمة مدير الوظيفة إلى عقدة مخصصة فقط. -
AZ_BATCH_NODE_IS_DEDICATEDيتوفر متغير البيئة لتطبيق مهمة بحيث يمكنه تحديد ما إذا كان يعمل على Spot أو على عقدة مخصصة.
عرض مقاييس أجهزة Spot VMs
تتوفر مؤشرات جديدة في بوابة Azure لعقد النقاط الفورية. هذه المقاييس هي:
- عدد العُقد منخفضة الأولوية
- عدد النواة ذات الأولوية المنخفضة
- عدد العقدة المستبعدة
لعرض هذه المقاييس في بوابة Azure:
- انتقل إلى حسابك في Batch في بوابة Azure.
- حدد Metrics من قسم Monitoring.
- حدد المقاييس التي تريدها من قائمة Metric.
القيود
- لا تدعم Spot VMs في Batch تحديد الحد الأقصى للسعر ولا تدعم عمليات الإخلاء المستندة إلى السعر. ولا يمكن إخلاؤها إلا لأسباب تتعلق بالقدرة الإنتاجية.
- لا تتوفر الأجهزة الظاهرية الموضعية لبعض السحب وأحجام الأجهزة الظاهرية وأنواع عروض الاشتراك. تعرف على المزيد حول قيود Spot VM.
- حاليا، أقراص نظام التشغيل المؤقتة غير مدعومة مع Spot VMs بسبب نهج الإخلاء المدار بواسطة الخدمة ل Stop-Deallocate.
الخطوات التالية
- اطلع على سير عمل خدمة "الدُفعة" ومواردها الأساسية مثل المجموعات والعُقد والمهام.
- تعرف على معلومات حول واجهات برمجة التطبيقات والأدوات المجمعة المتوفرة لإنشاء حلول مجمعة.
- لمزيد من المعلومات حول الآلات الافتراضية الفورية في Azure، بما في ذلك كيفية عرض الأسعار التاريخية ومعدلات الإخلاء، راجع Spot Virtual Machines.