Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Batch, Batch iş yüklerinin maliyetini azaltmak için Spot sanal makineleri (VM) sunar. Spot VM'ler, yüksek miktarda işlem gücünün düşük maliyetle kullanılmasını sağlayarak yeni Batch iş yükü türlerini mümkün hale getirir.
Spot VM'ler Azure fazla kapasiteden yararlanıyor. Kullanılabilir fazla kapasite miktarı VM ailesi, VM boyutu, bölge ve günün saati gibi faktörlere bağlı olarak değişir. Havuzlarınızda Spot VM'ler belirttiğinizde, Azure Batch, kullanılabilir olduğunda bu yedek kaynakları kullanabilir.
Spot VM'leri kullanmanın dezavantajı, bu VM'lerin SLA'sı olmaması ve kullanılabilirlik garantisi olmamasıdır. Spot VM'ler, VM'nin oluşturulmasının hemen ardından da dahil olmak üzere herhangi bir zamanda önlenebilir. Bu nedenle Spot VM'ler, işin tamamlanma süresinin esnek olduğu ve işin birçok VM'ye dağıtıldığı toplu ve zaman uyumsuz işleme iş yükleri için en uygundur.
Ön koşul oluşursa, Spot işlem düğümü çıkarılır ve uygun şekilde denetlenme noktası olmayan tüm çalışmalar kaybolur. Kontrol noktası oluşturma isteğe bağlıdır ve Batch son kullanıcısı tarafından uygulanması gerekmektedir. Ön kullanım nedeniyle kesilen çalışan Batch görevi, farklı bir işlem düğümü tarafından yürütülmek üzere otomatik olarak yeniden sorgulanır. Önceden kullanıma alınmış bir VM daha sonra Azure platformu tarafından geri yüklenebilir, ancak geri yükleme yalnızca ön kullanımdan sonraki ilk 48 saat için denenebilir ve sonunda başarılı olacağı garanti edilmez.
Spot VM'ler, ayrılmış VM'lerle karşılaştırıldığında daha düşük bir fiyata sunulur. Fiyatlandırma hakkında daha fazla bilgi edinmek için Batch pricing'e bakın.
Spot VM'ler için toplu destek
Azure Batch, Spot VM'leri kullanımı ve avantajlarından yararlanmayı kolaylaştıran çeşitli özellikler sağlar:
- Toplu iş havuzları hem ayrılmış VM'leri hem de Spot VM'leri içerebilir. Açık yeniden boyutlandırma işlemi kullanılarak veya otomatik ölçeklendirme kullanılarak bir havuz oluşturulduğunda veya mevcut bir havuz için herhangi bir zamanda değiştirildiğinde her vm türünün sayısı belirtilebilir. havuzdaki VM türlerinden bağımsız olarak iş ve görev gönderimi değişmeden kalabilir. Bunun yanı sıra, işleri mümkün olduğunca ekonomik bir şekilde çalıştırmak için Spot VM'leri tamamen kullanacak şekilde bir havuz yapılandırabilirsiniz. Ancak, kapasite minimum eşiğin altına düşerse işleri sürdürmek için ayrılmış VM'leri devreye alırsınız.
- Toplu iş havuzları otomatik olarak hedef Spot VM sayısını arar. VM'ler önceden damgalanmış veya kullanılamıyorsa, Batch kayıp kapasiteyi değiştirmeyi ve hedefe geri dönmeyi dener.
- Görevler kesildiğinde Batch, görevleri algılar ve otomatik olarak yeniden çalıştırılır.
- Spot VM'lerin ayrılmış VM'ler için olandan farklı ayrı bir vCPU kotası vardır. Spot VM'lerin maliyeti daha düşük olduğundan Spot VM kotası ayrılmış VM kotasından daha yüksektir. Daha fazla bilgi için Batch hizmeti kotaları ve sınırları sayfasına bakın.
Dikkat edilmesi gerekenler ve kullanım örnekleri
Birçok Batch iş yükü Spot VM'ler için uygundur. İşler birçok paralel görevle bölündüyse veya ölçeği genişletilen ve birçok VM arasında dağıtılan birçok işiniz olduğunda Spot VM'leri kullanmayı göz önünde bulundurun.
Spot VM'ler için uygun toplu işleme kullanım örnekleri şunlardır:
- Geliştirme ve test: Özellikle büyük ölçekli çözümler geliştiriliyorsa önemli tasarruflar gerçekleştirilebilir. Tüm test türleri yararlı olabilir, ancak büyük ölçekli yük testi ve regresyon testi harika kullanımlardır.
- İsteğe bağlı kapasitenin desteklenmesi: Spot VM'ler, düzenli ayrılmış VM'leri desteklemek için kullanılabilir. Kullanılabilir olduğunda işler daha düşük maliyetle ölçeklendirilebilir ve bu nedenle daha hızlı tamamlanabilir; kullanılabilir olmadığında, ayrılmış VM'lerin temeli kullanılabilir durumda kalır.
- Esnek iş yürütme süresi: İşlerin tamamlanması gereken süre konusunda esneklik varsa kapasitedeki olası düşüşlere tolerans gösterilebilir. Ancak Spot VM'lerin eklenmesiyle işler genellikle daha hızlı ve daha düşük maliyetle çalışır.
Toplu iş havuzları Spot VM'leri birkaç şekilde kullanacak şekilde yapılandırılabilir:
- Havuz yalnızca Spot VM'leri kullanabilir. Bu durumda Batch, kullanılabilir olduğunda önceden damgalanmış kapasiteyi kurtarır. Bu yapılandırma, işleri yürütmenin en ucuz yoludur.
- Spot VM'ler, ayrılmış VM'lerin sabit bir temeliyle kullanılabilir. Sabit sayıda ayrılmış VM, bir işin ilerlemesini sağlamak için her zaman biraz kapasite olmasını sağlar.
- Bir havuz, özel ve Spot VM'lerin dinamik bir karışımını kullanabilir; bu sayede, daha ucuz olan Spot VM'ler yalnızca mevcut olduğunda kullanılırken, tam fiyata sahip özel VM'ler gerektiğinde ölçeklenip artırılır. Bu yapılandırma, işlerin ilerlemesini sağlamak için en düşük kapasite miktarını korur.
Spot VM'leri kullanımınızı planlarken aşağıdaki uygulamaları göz önünde bulundurun:
- Azure fazla kapasite kullanımını en üst düzeye çıkarmak için uygun işler ölçeği genişletebilir.
- Bazen VM'ler kullanılamayabilir veya önalımlı olabilir, bu da işler için kapasitenin azalmasına neden olur ve görev kesintisine ve yeniden çalıştırmalara neden olabilir.
- Yürütme süresi daha kısa olan görevler spot VM'lerle en iyi şekilde çalışır. Daha uzun görevleri olan işler kesintiye uğrarsa daha fazla etkilenebilir. Uzun süre çalışan görevler yürütülürken ilerlemeyi kaydetmek için denetim noktaları oluşturursa, bu etkinin azaltılması sağlanabilir.
- Uzun süre çalışan ve birden çok VM kullanan MPI işleri, Spot VM'ler için uygun değildir, çünkü askıya alınmış bir VM tüm işin tekrar baştan çalıştırılmasına neden olabilir.
- Ağ güvenlik grubu (NSG) kuralları yanlış yapılandırılırsa spot düğümler kullanılamaz olarak işaretlenebilir.
Spot VM'lerle havuz oluşturma ve yönetme
Batch havuzu hem ayrılmış hem de Spot VM'ler (işlem düğümleri olarak da adlandırılır) içerebilir. Hem ayrılmış hem de Spot VM'ler için hedef işlem düğümü sayısını ayarlayabilirsiniz. Hedef düğüm sayısı, havuzda olmasını istediğiniz VM sayısını belirtir.
Spot VM'ler bazen önceden sonlandırılabilir. Önalım gerçekleştiğinde, önceden yüklenmiş düğüm VM'lerinde çalışan görevler yeniden sorgulanır ve kapasite döndürdüğünde yeniden çalıştırılır. Batch aşağıdaki davranışları da gerçekleştirir:
- Önceden damgalanmış VM'lerin durumları Preempted olarak güncelleştirildi.
- VM etkili bir şekilde silinir ve vm'de yerel olarak depolanan tüm verilerin kaybolmasına yol açar.
- Havuzdaki bir liste düğümleri işlemi yine de önceden damgalanmış düğümleri döndürür.
- Havuz sürekli olarak kullanılabilir spot düğümlerinin hedef sayısına ulaşmayı dener. Değiştirme kapasitesi bulunduğunda düğümler kimliklerini korur, ancak görev zamanlaması için kullanılabilir duruma gelmeden önce Oluşturma ve Başlatma durumlarından geçerek yeniden başlatılır.
- Öncelik sayıları, Azure portalında bir ölçüt olarak kullanılabilir.
Azure Batch SDK
Aşağıdaki örnek, 5 ayrılmış VM ve 20 Spot VM'yi hedefleyen Azure sanal makineleri (bu örnekte Linux VM'leri) kullanarak bir havuz oluşturur:
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);
Hem özel hem de Spot VM'ler için mevcut düğüm sayısını alabilirsiniz.
int? numDedicated = pool1.CurrentDedicatedComputeNodes;
int? numLowPri = pool1.CurrentLowPriorityComputeNodes;
Havuz düğümlerinin, düğümün özel bir VM mi yoksa Spot VM mi olduğunu ortaya koyan bir özelliği vardır.
bool? isNodeDedicated = poolNode.IsDedicated;
Yalnızca ayrılmış VM'lerden oluşan havuzlarda olduğu gibi, yöntemini çağırarak Resize veya otomatik ölçeklendirme kullanarak Spot VM'leri içeren bir havuzu ölçeklendirmek mümkündür.
Havuz yeniden boyutlandırma işlemi, değerini targetLowPriorityNodesgüncelleştiren isteğe bağlı ikinci bir parametre alır:
pool.Resize(targetDedicatedComputeNodes: 0, targetLowPriorityComputeNodes: 25);
Azure CLI
Spot örnekleriyle yeni bir havuz oluşturun:
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 örneklerini kullanmak için mevcut havuzu ölçeklendirin:
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"
Havuz durumunu ve düğüm tahsisini denetleme
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 örnekleriyle havuz oluşturma:
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 ile doğrulama:
$pool = Get-AzBatchPool -Id "vmpool" -BatchContext $context
$pool | Select-Object Id, VmSize, @{Name="SpotNodes";Expression={$_.TargetLowPriorityComputeNodes}}, State
Azure portalı
Azure portalında Batch hesabını seçin ve var olan bir havuzu görüntüleyin veya yeni bir havuz oluşturun.
Ölçek altında Hedef ayrılmış düğümler'i veya Hedef Nokta/düşük öncelikli düğümler'i seçin.
Mevcut bir havuz için havuzu seçin ve ardından Ölçek'i seçerek gerekli Spot düğüm sayısını güncelleştirin.
Kaydetseçeneğini seçin.
Spot VM'lerle otomatik ölçeklendirme
Hedef VM sayılarını doğrudan ayarlamanın yanı sıra, isteğe bağlı olarak havuzunuz için bir otomatik ölçeklendirme formülü tanımlayabilirsiniz. Havuz otomatik ölçeklendirme formülü Spot VM'leri aşağıdaki gibi destekler:
- Hizmet tanımlı değişkeninin
$TargetLowPriorityNodesdeğerini alabilir veya ayarlayabilirsiniz. - Hizmet tanımlı değişkeninin
$CurrentLowPriorityNodesdeğerini alabilirsiniz. - Hizmet tanımlı değişkeninin
$PreemptedNodeCountdeğerini alabilirsiniz. Bu değişken, önceden belirlenmiş durumdaki düğüm sayısını döndürür ve kullanılamayan önceden belirlenmiş düğüm sayısına bağlı olarak ayrılmış düğüm sayısını artırmanıza veya azaltmanıza olanak tanır.
Daha fazla bilgi için Toplu Otomatik Ölçekleme Kılavuzu'na bakın.
İşleri ve görevleri yapılandırma
İşler ve görevler Spot düğümler için ek yapılandırma gerektirebilir:
- Bir işin
JobManagerTasközelliği, birAllowLowPriorityNodeözelliğine sahiptir. Bu özellik doğru olduğunda, iş yöneticisi görevi, ayrılmış bir düğümde veya Spot düğümünde zamanlanabilir. Yanlış olması durumunda, iş yöneticisi görevi yalnızca ayrılmış bir düğüme zamanlanır. - Ortam
AZ_BATCH_NODE_IS_DEDICATEDdeğişkeni , spot üzerinde mi yoksa ayrılmış bir düğümde mi çalıştığını belirleyebilmesi için görev uygulaması tarafından kullanılabilir.
Spot VM'ler için ölçümleri görüntüleme
Yeni ölçümler Spot düğümler için Azure portalında kullanılabilir. Bu ölçümler şunlardır:
- Düşük Öncelikli Düğüm Sayısı
- Düşük Öncelikli Çekirdek Sayısı
- Önceden Damgalanmış Düğüm Sayısı
bu ölçümleri Azure portalında görüntülemek için:
- Azure portalında Batch hesabınıza gidin.
- İzleme bölümünden Ölçümler'i seçin.
- Ölçüm listesinden istediğiniz ölçümleri seçin.
Sınırlamalar
- Batch'teki spot VM'ler maksimum fiyat ayarlamayı desteklemez ve fiyat tabanlı çıkarmaları desteklemez. Yalnızca kapasite nedenleriyle tahliye edilebilirler.
- Spot VM'ler bazı bulutlar, VM boyutları ve abonelik teklifi türleri için kullanılamaz. `Spot VM sınırlamaları hakkında daha fazla bilgi edinin.`
- Şu anda, Stop-Deallocate hizmetinin yönettiği çıkarma ilkesi nedeniyle kısa ömürlü işletim sistemi diskleri Spot VM'lerde desteklenmemektedir.
Sonraki adımlar
- Batch hizmeti iş akışı ve havuzlar, düğümler, işler ve görevler gibi birincil kaynaklar hakkında bilgi edinin.
- Batch çözümleri oluşturmak için kullanılabilen Batch API’leri ve araçları hakkında bilgi alın.
- Geçmiş fiyatlandırma ve çıkarma oranlarını görüntüleme de dahil olmak üzere Azure spot VM'ler hakkında daha fazla bilgi için bkz. Spot Sanal Makineler.