Spot-VM's gebruiken met Batch-workloads

Azure Batch biedt virtuele spot-machines (VM's) om de kosten van Batch-workloads te verlagen. Spot-VM's maken nieuwe typen Batch-workloads mogelijk door een grote hoeveelheid rekenkracht voor lage kosten te gebruiken.

Spot-VM's profiteren van overtollige capaciteit in Azure. Wanneer u spot-VM's in uw pools opgeeft, kunt Azure Batch dit overschot gebruiken, indien beschikbaar.

De afweging voor het gebruik van spot-VM's is dat deze VM's mogelijk niet altijd beschikbaar zijn of dat ze op elk gewenst moment worden afgekeerd, afhankelijk van de beschikbare capaciteit. Daarom zijn spot-VM's het meest geschikt voor batch- en asynchrone verwerkingsworkloads waarbij de voltooiingstijd van de taak flexibel is en het werk over veel VM's wordt verdeeld.

Spot-VM's worden aangeboden tegen een gereduceerde prijs in vergelijking met toegewezen VM's. Zie Batch-prijzen voor meer informatie over prijzen.

Verschillen tussen spot- en VM's met lage prioriteit

Batch biedt twee soorten goedkope, vooraf te gebruiken VM's:

  • Spot-VM's, een moderne Azure-brede aanbieding die ook beschikbaar is als VM's met één exemplaar of Virtual Machine Scale Sets.
  • VM's met lage prioriteit, een verouderde aanbieding die alleen beschikbaar is via Azure Batch.

Het type knooppunt dat u krijgt, is afhankelijk van de pooltoewijzingsmodus van uw Batch-account, die kan worden ingesteld tijdens het maken van het account. Batch-accounts die gebruikmaken van de pooltoewijzingsmodus voor gebruikersabonnementen , krijgen altijd spot-VM's. Batch-accounts die gebruikmaken van de toewijzingsmodus voor beheerde Batch-pools , krijgen altijd VM's met lage prioriteit.

Waarschuwing

VM's met lage prioriteit worden na 30 september 2025 buiten gebruik gesteld. Migreer vóór die tijd naar spot-VM's in Batch .

Azure Spot-VM's en Batch-VM's met lage prioriteit zijn vergelijkbaar, maar hebben een paar verschillen in gedrag.

Spot-VM's Virtuele machines met lage prioriteit
Ondersteunde Batch-accounts Batch-accounts voor gebruikersabonnementen Batch-beheerde Batch-accounts
Ondersteunde Batch-poolconfiguraties Configuratie van virtuele machines Configuratie van virtuele machines en cloudserviceconfiguratie (afgeschaft)
Beschikbare regio's Alle regio's die ondersteuning bieden voor spot-VM's Alle regio's behalve Microsoft Azure beheerd door 21Vianet
Klantgeschiktheid Niet beschikbaar voor sommige typen abonnementsaanbieding. Meer informatie over Spot-beperkingen. Beschikbaar voor alle Batch-klanten
Mogelijke redenen voor verwijdering Capaciteit Capaciteit
Prijsmodel Variabele kortingen ten opzichte van standaard-VM-prijzen Vaste kortingen ten opzichte van standaard-VM-prijzen
Quotummodel Onderhevig aan kernquota voor uw abonnement Onderhevig aan kernquota voor uw Batch-account
SLA voor beschikbaarheid Geen Geen

Batch-ondersteuning voor spot-VM's

Azure Batch biedt verschillende mogelijkheden waarmee u eenvoudig spot-VM's kunt gebruiken en gebruiken:

  • Batch-pools kunnen zowel toegewezen VM's als spot-VM's bevatten. Het nummer van elk type VM kan worden opgegeven wanneer een groep wordt gemaakt of op elk gewenst moment wordt gewijzigd voor een bestaande pool, met behulp van de expliciete bewerking voor het wijzigen van het formaat of door automatische schaalaanpassing te gebruiken. Taak- en taakinzending kunnen ongewijzigd blijven, ongeacht de VM-typen in de pool. U kunt ook een pool configureren om spot-VM's volledig te gebruiken om taken zo goedkoop mogelijk uit te voeren, maar toegewezen VM's instellen als de capaciteit onder een minimumdrempel daalt, om taken actief te houden.
  • Batch-pools zoeken automatisch het doelaantal spot-VM's op. Als VM's worden overgeslagen of niet beschikbaar zijn, probeert Batch de verloren capaciteit te vervangen en terug te keren naar het doel.
  • Wanneer taken worden onderbroken, worden taken in Batch gedetecteerd en automatisch opnieuw in de wachtrij weergegeven om opnieuw uit te voeren.
  • Spot-VM's hebben een afzonderlijk vCPU-quotum dat verschilt van het quotum voor toegewezen VM's. Het quotum voor spot-VM's is hoger dan het quotum voor toegewezen VM's, omdat spot-VM's minder kosten. Zie Quota en limieten voor Batch-services voor meer informatie.

Overwegingen en gebruiksvoorbeelden

Veel Batch-workloads zijn geschikt voor spot-VM's. Overweeg spot-VM's te gebruiken wanneer taken zijn onderverdeeld in veel parallelle taken of wanneer u veel taken hebt die zijn uitgeschaald en verdeeld over veel VM's.

Enkele voorbeelden van gebruiksvoorbeelden voor batchverwerking die geschikt zijn voor spot-VM's zijn:

  • Ontwikkeling en testen: Met name als er grootschalige oplossingen worden ontwikkeld, kunnen aanzienlijke besparingen worden gerealiseerd. Alle soorten tests kunnen hiervan profiteren, maar grootschalige belastingstests en regressietests zijn een uitstekend gebruik.
  • Capaciteit op aanvraag aanvullen: Spot-VM's kunnen worden gebruikt als aanvulling op reguliere toegewezen VM's. Wanneer deze beschikbaar zijn, kunnen taken worden geschaald en daarom sneller worden voltooid voor lagere kosten; als deze niet beschikbaar is, blijft de basislijn van toegewezen VM's beschikbaar.
  • Flexibele uitvoeringstijd van taken: als er flexibiliteit is in de tijd die taken moeten worden voltooid, kunnen potentiële capaciteitsverminderingen worden getolereerd. Met de toevoeging van spot-VM's worden taken echter vaak sneller uitgevoerd en tegen lagere kosten.

Batch-pools kunnen op een aantal manieren worden geconfigureerd voor het gebruik van spot-VM's:

  • Een pool kan alleen spot-VM's gebruiken. In dit geval herstelt Batch alle vervorderde capaciteit wanneer deze beschikbaar is. Deze configuratie is de goedkoopste manier om taken uit te voeren.
  • Spot-VM's kunnen worden gebruikt met een vaste basislijn van toegewezen VM's. Het vaste aantal toegewezen VM's zorgt ervoor dat er altijd enige capaciteit is om de voortgang van een taak te behouden.
  • Een pool kan een dynamische combinatie van toegewezen en spot-VM's gebruiken, zodat de goedkopere spot-VM's alleen worden gebruikt wanneer deze beschikbaar zijn, maar de toegewezen VM's met een volledige prijs omhoog schalen wanneer dat nodig is. Met deze configuratie blijft een minimale hoeveelheid capaciteit beschikbaar om taken te laten verlopen.

Houd rekening met de volgende procedures bij het plannen van uw gebruik van spot-VM's:

  • Om het gebruik van overtollige capaciteit in Azure te maximaliseren, kunnen geschikte taken worden uitgeschaald.
  • Soms zijn VM's mogelijk niet beschikbaar of worden ze afgeknot, wat resulteert in verminderde capaciteit voor taken en kan leiden tot taakonderbreking en nieuwe uitvoeringen.
  • Taken met kortere uitvoeringstijden werken meestal het beste met spot-VM's. Taken met langere taken kunnen meer worden beïnvloed als ze worden onderbroken. Als langlopende taken controlepunten implementeren om de voortgang op te slaan terwijl ze worden uitgevoerd, kan deze impact worden verminderd.
  • Langlopende MPI-taken die gebruikmaken van meerdere VM's, zijn niet geschikt voor spot-VM's, omdat één vooraf geactiveerde VM ertoe kan leiden dat de hele taak opnieuw moet worden uitgevoerd.
  • Spot-knooppunten kunnen als onbruikbaar worden gemarkeerd als NSG-regels (netwerkbeveiligingsgroep) onjuist zijn geconfigureerd.

Pools maken en beheren met spot-VM's

Een Batch-pool kan zowel toegewezen als spot-VM's bevatten (ook wel rekenknooppunten genoemd). U kunt het doelaantal rekenknooppunten instellen voor zowel toegewezen als spot-VM's. Het doelaantal knooppunten geeft het aantal VM's op dat u in de pool wilt hebben.

In het volgende voorbeeld wordt een pool gemaakt met behulp van virtuele Azure-machines, in dit geval Linux-VM's, met als doel 5 toegewezen VM's en 20 spot-VM's:

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);

U kunt het huidige aantal knooppunten voor zowel toegewezen als spot-VM's ophalen:

int? numDedicated = pool1.CurrentDedicatedComputeNodes;
int? numLowPri = pool1.CurrentLowPriorityComputeNodes;

Poolknooppunten hebben een eigenschap om aan te geven of het knooppunt een toegewezen of spot-VM is:

bool? isNodeDedicated = poolNode.IsDedicated;

Spot-VM's kunnen af en toe worden gepreempt. Wanneer voorrang plaatsvindt, worden taken die werden uitgevoerd op de vooraf geactiveerde knooppunt-VM's, opnieuw in de wachtrij gezet en opnieuw uitgevoerd wanneer de capaciteit terugkeert.

Voor configuratiegroepen voor virtuele machines voert Batch ook het volgende gedrag uit:

  • De status van de pre-mpted VM's is bijgewerkt naar Preempted.
  • De VM wordt effectief verwijderd, wat leidt tot het verlies van gegevens die lokaal op de VM zijn opgeslagen.
  • Een lijst met knooppunten in de pool retourneert nog steeds de afgekeerde knooppunten.
  • De pool probeert voortdurend het doelaantal beschikbare spot-knooppunten te bereiken. Wanneer er vervangingscapaciteit wordt gevonden, behouden de knooppunten hun id's, maar worden ze opnieuw geïnitialiseerd, waarbij ze de status Maken en Starten doorlopen voordat ze beschikbaar zijn voor taakplanning.
  • Het aantal voorrangen is beschikbaar als metrische waarde in de Azure Portal.

Pools met spot-VM's schalen

Net als bij pools die uitsluitend uit toegewezen VM's bestaan, is het mogelijk om een pool met spot-VM's te schalen door de Resize methode aan te roepen of door automatische schaalaanpassing te gebruiken.

Voor de bewerking voor het wijzigen van het formaat van de pool wordt een tweede optionele parameter gebruikt waarmee de waarde van targetLowPriorityNodeswordt bijgewerkt:

pool.Resize(targetDedicatedComputeNodes: 0, targetLowPriorityComputeNodes: 25);

De formule voor automatische schaalaanpassing van groepen ondersteunt spot-VM's als volgt:

  • U kunt de waarde van de door de service gedefinieerde variabele $TargetLowPriorityNodesophalen of instellen.
  • U kunt de waarde van de door de service gedefinieerde variabele $CurrentLowPriorityNodesophalen.
  • U kunt de waarde van de door de service gedefinieerde variabele $PreemptedNodeCountophalen. Deze variabele retourneert het aantal knooppunten met de voorlopige status en stelt u in staat om het aantal toegewezen knooppunten omhoog of omlaag te schalen, afhankelijk van het aantal uitgeschakelde knooppunten dat niet beschikbaar is.

Taken en taken configureren

Voor taken en taken is mogelijk extra configuratie vereist voor spot-knooppunten:

  • De JobManagerTask eigenschap van een taak heeft een AllowLowPriorityNode eigenschap. Wanneer deze eigenschap waar is, kan de taak voor taakbeheer worden gepland op een toegewezen of spot-knooppunt. Als deze onwaar is, wordt de taak voor taakbeheer alleen gepland op een toegewezen knooppunt.
  • De AZ_BATCH_NODE_IS_DEDICATEDomgevingsvariabele is beschikbaar voor een taaktoepassing, zodat deze kan bepalen of deze wordt uitgevoerd op een spot of op een toegewezen knooppunt.

Metrische gegevens voor spot-VM's weergeven

Nieuwe metrische gegevens zijn beschikbaar in de Azure Portal voor spot-knooppunten. Deze metrische gegevens zijn:

  • aantal Low-Priority knooppunten
  • Low-Priority aantal kernen
  • Aantal voorlopige knooppunten

Ga als volgt te werk om deze metrische gegevens weer te geven in de Azure Portal:

  1. Ga in Azure Portal naar uw Batch-account.
  2. Selecteer Metrische gegevens in de sectie Bewaking .
  3. Selecteer de gewenste metrische gegevens in de lijst Metrische gegevens .

Beperkingen

  • Spot-VM's in Batch bieden geen ondersteuning voor het instellen van een maximumprijs en bieden geen ondersteuning voor verwijderingen op basis van prijzen. Ze kunnen alleen om capaciteitsredenen worden verwijderd.
  • Spot-VM's zijn alleen beschikbaar voor virtuele-machineconfiguratiegroepen en niet voor cloudserviceconfiguratiegroepen, die zijn afgeschaft.
  • Spot-VM's zijn niet beschikbaar voor sommige clouds, VM-grootten en abonnementsaanbiedingstypen. Zie Beperkingen voor spot-VM's voor meer informatie.
  • Tijdelijke besturingssysteemschijven worden momenteel niet ondersteund met spot-VM's vanwege het door de service beheerde verwijderingsbeleid van Stop-Deallocate.

Volgende stappen