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, 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'daki fazla kapasiteden yararlanıyor. Havuzlarınızda Spot VM'leri belirttiğinizde Azure Batch, kullanılabilir olduğunda bu fazlalığı kullanabilir.

Spot VM'leri kullanmanın dezavantajı, bu VM'lerin her zaman kullanılamayabileceği veya kullanılabilir kapasiteye bağlı olarak herhangi bir zamanda önalımlı 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.
  • Yalnızca Azure Batch aracılığıyla kullanılabilen eski bir teklif olan düşük öncelikli VM'ler.

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ı abonelik 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 sağlanan 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 Kapasite Kapasite
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 temel kotalara tabidir Batch hesabınızdaki çekirdek kotalara tabi
Kullanılabilirlik SLA'sı Hiçbiri Hiçbiri

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. Ayrıca, işleri mümkün olduğunca ucuza çalıştırmak için Spot VM'leri tamamen kullanacak şekilde bir havuz yapılandırabilirsiniz, ancak işleri çalışır durumda tutmak için kapasite minimum eşiğin altına düşerse ayrılmış VM'leri çalıştırı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 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ü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.
  • 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ı korur.

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 ö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 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 örnek, 5 ayrılmış VM ve 20 Spot VM hedefi olan Azure sanal makinelerini (bu örnekte Linux VM'leri) kullanarak bir havuz oluşturur:

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üğümlerinin, düğümün ayrılmış bir vm mi yoksa Spot VM mi olduğunu belirten bir özelliği vardır:

bool? isNodeDedicated = poolNode.IsDedicated;

Spot VM'ler bazen önalımlı olabilir. Ö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 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 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ında ö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ç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);

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.

İşleri ve görevleri yapılandırma

İşler ve görevler Spot düğümler için ek yapılandırma gerektirebilir:

  • bir JobManagerTask işin özelliği bir AllowLowPriorityNode özelliğe sahiptir. 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_DEDICATED değ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

Spot düğümler için Azure portalında yeni ölçümler 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:

  1. Azure portalında Batch hesabınıza gidin.
  2. İzleme bölümünden Ölçümler'i seçin.
  3. Ölçüm listesinden istediğiniz ölçümleri seçin.

Sınırlamalar

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.