Batch iş yükleriyle Spot VM'leri kullanma
Azure Batch, Batch iş yüklerinin maliyetini azaltmak için Spot sanal makineleri (VM) sunar. Spot VM'ler, düşük maliyet için büyük miktarda işlem gücünün kullanılmasını sağlayarak yeni Batch iş yükleri türlerini mümkün kılar.
Spot VM'ler Azure'daki fazla kapasiteden yararlanıyor. Havuzlarınızda Spot VM'ler belirttiğinizde, Azure Batch kullanılabilir olduğunda bu fazlalığı kullanabilirsiniz.
Spot VM'leri kullanmanın dezavantajı, bu VM'lerin her zaman kullanılamayabileceği veya kullanılabilir kapasiteye bağlı olarak herhangi bir zamanda etkisiz hale getirilebileceğidir. 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.
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 bkz . Batch fiyatlandırması.
Spot ve düşük öncelikli VM'ler arasındaki farklar
Batch iki tür düşük maliyetli önceden hazırlanabilir VM sunar:
- Tek örnekli VM'ler veya Sanal Makine Ölçek Kümeleri olarak da kullanılabilen, Azure genelindeki modern bir teklif olan Spot VM'ler.
- Düşük öncelikli VM'ler, yalnızca Azure Batch aracılığıyla kullanılabilen eski bir tekliftir.
Elde ettiğiniz düğümün türü, Batch hesabınızın hesap oluşturma sırasında ayarlanabilen havuz ayırma moduna bağlıdır. Kullanıcı aboneliği havuzu ayırma modunu kullanan Batch hesapları her zaman Spot VM'leri alır. Batch yönetilen havuz ayırma modunu kullanan Batch hesapları her zaman düşük öncelikli VM'lere sahip olur.
Uyarı
Düşük öncelikli VM'ler 30 Eylül 2025'in ardından kullanımdan kaldırılacaktır. Lütfen daha önce Batch'te Spot VM'lere geçin .
Azure Spot VM'leri ve Batch düşük öncelikli VM'ler benzerdir ancak davranışlarında birkaç fark vardır.
|Spot VM'ler||Düşük öncelikli sanal makineler|
|Desteklenen Batch hesapları||Kullanıcı aboneliği Batch hesapları||Batch tarafından yönetilen Batch hesapları|
|Desteklenen Batch havuzu yapılandırmaları||Sanal Makine Yapılandırması||Sanal Makine Yapılandırması ve Bulut Hizmeti Yapılandırması (kullanım dışı)|
|Kullanılabilir bölgeler||Spot VM'leri destekleyen tüm bölgeler||21Vianet tarafından işletilen Microsoft Azure dışındaki tüm bölgeler|
|Müşteri uygunluğu||Bazı abonelik teklifi türlerinde kullanılamaz. Spot sınırlamaları hakkında daha fazla bilgi edinin.||Tüm Batch müşterileri için kullanılabilir|
|Çıkarmanın olası nedenleri||Capacity||Capacity|
|Fiyatlandırma Modeli||Standart VM fiyatlarına göre değişken indirimler||Standart VM fiyatlarına göre sabit indirimler|
|Kota modeli||Aboneliğinizdeki çekirdek kotalara tabidir||Batch hesabınızdaki çekirdek kotalara tabi|
|Kullanılabilirlik SLA'sı||Hiçbiri||Hiçbiri|
Spot VM'ler için Batch desteği
Azure Batch, Spot VM'leri tüketmeyi ve bu VM'lerden 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ürleri ne olursa olsun iş ve görev gönderimi değişmeden kalabilir. Ayrıca, işleri mümkün olduğunca ucuza çalıştırmak için Spot VM'leri tamamen kullanacak ancak kapasite minimum eşiğin altına düşerse ayrılmış VM'leri çalıştıracak şekilde yapılandırabilirsiniz.
- Batch havuzları otomatik olarak hedef Spot VM sayısını arar. VM'ler etkisiz hale getirildiyse veya kullanılamıyorsa, Batch kaybedilen kapasiteyi değiştirmeyi ve hedefe geri dönmeyi dener.
- Görevler kesintiye uğradığında 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 bkz . Batch hizmeti kotaları ve sınırları.
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ünürken veya ölçeği genişletilip birçok VM'ye dağıtılmış 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 ölçeklendirilebilir ve bu nedenle daha düşük maliyet için 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 daha hızlı ve daha düşük maliyetle çalıştırılır.
Batch 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 oluşturulmuş 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.
- Havuz ayrılmış ve Spot VM'lerin dinamik bir karışımını kullanabilir, böylece daha ucuz Spot VM'ler yalnızca kullanılabilir olduğunda kullanılır, ancak tam fiyatlı ayrılmış VM'lerin ölçeği gerektiğinde artırılır. Bu yapılandırma, işlerin ilerlemesini sağlamak için en düşük kapasite miktarını sağlar.
Spot VM'leri kullanımınızı planlarken aşağıdaki uygulamaları göz önünde bulundurun:
- Azure'da 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 kullanıma hazır hale gelebilir, bu da işler için kapasitenin azalmasına neden olur ve görev kesintisine ve yeniden çalıştırmalara yol açabilir.
- Yürütme süresi daha kısa olan görevler en iyi şekilde Spot VM'lerle çalışır. Daha uzun görevlere sahip 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 noktası oluşturma uygularsa, bu etki azaltılabilir.
- Birden çok VM kullanan uzun süre çalışan MPI işleri Spot VM'ler için uygun değildir, çünkü önceden yüklenmiş bir VM tüm işin yeniden ç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.
Aşağıdaki örnekte, 5 ayrılmış VM ve 20 Spot VM hedefli Linux VM'leri olmak üzere Azure sanal makinelerini kullanarak bir havuz oluşturulur:
ImageReference imageRef = new ImageReference( publisher: "Canonical", offer: "UbuntuServer", sku: "20.04-LTS", version: "latest"); // Create the pool VirtualMachineConfiguration virtualMachineConfiguration = new VirtualMachineConfiguration("batch.node.ubuntu 20.04", imageRef); pool = batchClient.PoolOperations.CreatePool( poolId: "vmpool", targetDedicatedComputeNodes: 5, targetLowPriorityComputeNodes: 20, virtualMachineSize: "Standard_D2_v2", virtualMachineConfiguration: virtualMachineConfiguration);
Hem ayrılmış hem de Spot VM'ler için geçerli düğüm sayısını alabilirsiniz:
int? numDedicated = pool1.CurrentDedicatedComputeNodes; int? numLowPri = pool1.CurrentLowPriorityComputeNodes;
Havuz düğümleri, düğümün ayrılmış bir vm mi yoksa Spot VM mi olduğunu belirten bir özelliğe sahiptir:
bool? isNodeDedicated = poolNode.IsDedicated;
Spot VM'ler bazen etkisiz hale gelebilir. Ö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, Sanal Makine Yapılandırma havuzları için aşağıdaki davranışları da gerçekleştirir:
- Önceden hazırlanan VM'lerin durumu Preempted olarak güncelleştirildi.
- VM etkili bir şekilde silinerek VM'de yerel olarak depolanan verilerin kaybolmasına yol açar.
- Havuzdaki bir liste düğümleri işlemi yine de öncedenmpted 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 tutar, ancak görev zamanlaması için kullanılabilir duruma gelmeden önce Oluşturma ve Başlatma durumları üzerinden yeniden başlatılır.
- Ön kullanım sayıları, Azure portal bir ölçüm olarak kullanılabilir.
Spot VM'leri içeren ölçek havuzları
Yalnızca ayrılmış VM'lerden oluşan havuzlarda olduğu gibi, yöntemini çağırarak
Resize veya otomatik ölçeklendirmeyi 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 ikinci bir isteğe bağlı parametre alır:
pool.Resize(targetDedicatedComputeNodes: 0, targetLowPriorityComputeNodes: 25);
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ın ölçeğini artırmanıza veya azaltmanıza olanak tanır.
İşleri ve görevleri yapılandırma
İşler ve görevler Spot düğümler için ek yapılandırma gerektirebilir:
- bir
JobManagerTaskişin özelliğinin özelliği
AllowLowPriorityNodevardır. Bu özellik true olduğunda, iş yöneticisi görevi ayrılmış veya Spot düğümde zamanlanabilir. Yanlışsa, iş yöneticisi görevi yalnızca ayrılmış bir düğüme zamanlanır.
- Ortam
AZ_BATCH_NODE_IS_DEDICATEDdeğişkeni bir görev uygulaması tarafından kullanılabilir, böylece bir Spot'ta mı yoksa ayrılmış bir düğümde mi çalıştığını belirleyebilir.
Spot VM'ler için ölçümleri görüntüleme
Spot düğümleri için Azure portal yeni ölçümler sağlanır. Bu ölçümler şunlardır:
- düğüm sayısını Low-Priority
- Low-Priority Çekirdek Sayısı
- Önceden Damgalanmış Düğüm Sayısı
Bu ölçümleri Azure portal görüntülemek için:
- Azure portalında Batch hesabınıza gidin.
- İzlemebö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. Bunlar yalnızca kapasite nedeniyle çıkarılabilir.
- Spot VM'ler yalnızca Sanal Makine Yapılandırma havuzları için kullanılabilir, kullanım dışı bırakılan Bulut Hizmeti Yapılandırma havuzları için kullanılamaz.
- 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.
- Düşük öncelikli VM'lerden Spot VM'lere taşımayı planlamaya başlayın. Cloud Services Yapılandırma havuzları (kullanım dışı) ile düşük öncelikli VM'ler kullanıyorsanız, bunun yerine Sanal Makine Yapılandırma havuzlarına geçmeyi planlayın.