Dela via


Använd Spot-virtuella datorer med Batch-arbetsbelastningar

Azure Batch erbjuder virtuella datorer med oanvänd kapacitet för att minska kostnaden för Batch-arbetsbelastningar. Spot VMs möjliggör nya typer av Batch-arbetsbelastningar genom att man kan använda en stor maskinpark till låg kostnad.

Spot VMs utnyttjar överskottskapaciteten i Azure. När du specificerar Spot-VM:er i dina beräkningspooler kan Azure Batch använda sig av denna överkapacitet när den är tillgänglig.

Kompromissen med att använda Spot VMs är att dessa virtuella datorer kanske inte alltid är tillgängliga, eller att de kan bli avbrutna när som helst, beroende på tillgänglig kapacitet. Därför är Spot-instanser lämpligast för batch- och asynkrona bearbetnings arbetsbelastningar där tiden för att slutföra jobbet är flexibel och uppgifterna distribueras över många virtuella datorer.

Virtuella datorer med oanvänd kapacitet erbjuds till ett reducerat pris jämfört med dedikerade virtuella datorer. Mer information om priser finns i Batch-priser.

Skillnader mellan Spot-instanser och virtuella datorer med låg prioritet

Batch erbjuder två typer av fördefinierade virtuella datorer till låg kostnad:

  • Spot-VMS, ett modernt Azure-erbjudande, som också är tillgängligt som virtuella datorer som enstaka instanser eller skalningsuppsättningar av virtuella datorer.
  • Virtuella datorer med låg prioritet, ett äldre erbjudande som endast är tillgängligt via Azure Batch.

Vilken typ av nod du får beror på batchkontots poolallokeringsläge, som kan anges när kontot skapas. Batch-konton som använder allokeringsläget för användarprenumerationspoolen får alltid Spot-VM:er. Batch-konton som använder batchhanterat poolallokeringsläge får alltid virtuella datorer med låg prioritet.

Varning

Virtuella datorer med låg prioritet dras tillbaka efter den 30 september 2025. Migrera till Spot VMs i Batch före det datumet.

Virtuella Azure Spot-datorer och batch-lågprioriterade virtuella datorer är liknande men har några skillnader i beteende.

Spot-VM:er Lågprioriterade virtuella datorer
Batch-konton som stöds Batch-konton för användarprenumeration Batchhanterade konton
Konfigurationer av Batch-pooler som stöds Konfiguration av virtuell dator Konfiguration av virtuella datorer och molntjänstkonfiguration (inaktuell)
Tillgängliga regioner Alla regioner som stöder Spot-VMinstanser Alla regioner utom Microsoft Azure som drivs av 21Vianet
Kundbehörighet Inte tillgängligt för vissa typer av prenumerationserbjudande. Läs mer om Spot-begränsningar. Tillgänglig för alla Batch-kunder
Möjliga orsaker till avhysning Kapacitet Kapacitet
Prismodell Variabelrabatter i förhållande till standardpriser för virtuella datorer Fasta rabatter i förhållande till standardpriser för virtuella datorer
Kvotmodell Omfattas av kärnkvoter för din prenumeration Omfattas av kärnkvoter för ditt Batch-konto
Serviceavtal för tillgänglighet Ingen Ingen

Batch-stöd för Spot VMs

Azure Batch har flera funktioner som gör det enkelt att använda och dra nytta av spot-VM:er.

  • Batch-poolen kan innehålla både dedikerade virtuella datorer och virtuella datorer med Spot-kapacitet. Antalet virtuella datorer av varje typ kan anges när en pool skapas, eller ändras när som helst för en befintlig pool, med hjälp av den explicita storleksåtgärden eller med autoskalning. Jobb- och uppgiftsöverföring kan förbli oförändrade, oavsett vm-typerna i poolen. Du kan också konfigurera en pool för att helt använda virtuella datorer med oanvänd kapacitet för att köra jobb så billigt som möjligt, men starta dedikerade virtuella datorer om kapaciteten sjunker under ett minimitröskelvärde för att hålla jobben igång.
  • Batch-pooler söker automatiskt efter målantalet Spot-VMs. Om virtuella datorer är förinställda eller otillgängliga försöker Batch ersätta den förlorade kapaciteten och återgå till målet.
  • När aktiviteter avbryts identifierar Batch och returnerar automatiskt uppgifter för att köras igen.
  • Spot-instanser har en separat vCPU-kvot som skiljer sig från den för dedikerade virtuella datorer. Kvoten för virtuella datorer med oanvänd kapacitet är högre än kvoten för dedikerade virtuella datorer, eftersom virtuella datorer med oanvänd kapacitet kostar mindre. Mer information finns i Batch-tjänstkvoter och -gränser.

Överväganden och användningsfall

Många Batch-arbetsbelastningar passar bra för Spot-VM:er. Överväg att använda Spot-instanser när jobb delas upp i många parallella uppgifter, eller när du har många jobb som skalas ut och distribueras över många virtuella datorer.

Några exempel på användningsfall för batchbearbetning som passar bra för Spot VMs är:

  • Utveckling och testning: I synnerhet om storskaliga lösningar utvecklas kan betydande besparingar genomföras. Alla typer av tester kan vara till nytta, men storskalig belastningstestning och regressionstestning är utmärkta användningsområden.
  • Komplettera kapacitet på begäran: Spot-VMar kan användas för att komplettera vanliga dedikerade virtuella datorer. När det är tillgängligt kan jobb skalas och därför slutföras snabbare för lägre kostnad. när den inte är tillgänglig förblir baslinjen för dedikerade virtuella datorer tillgänglig.
  • Flexibel tid för att slutföra jobb: Om det finns flexibilitet när jobben måste slutföras, så kan potentiella kapacitetsfall tolereras. Men med tillägg av virtuella datorer med oanvänd kapacitet körs jobb ofta snabbare och till en lägre kostnad.

Batch-pooler kan konfigureras för att använda Spot-instanser på några olika sätt:

  • En pool kan endast använda Spot VMs. I det här fallet återställer Batch eventuell förinstallerad kapacitet när den är tillgänglig. Den här konfigurationen är det billigaste sättet att köra jobb.
  • Virtuella datorer av typen Spot kan användas med en fast baslinje av dedikerade virtuella datorer. Det fasta antalet dedikerade virtuella datorer säkerställer att det alltid finns viss kapacitet för att ett jobb ska fortsätta.
  • En pool kan använda en dynamisk blandning av dedikerade och Spot-VM:er, så att de billigare Spot-VM:erna endast används när de är tillgängliga, men de fullprisade dedikerade VM:erna skalas upp när det behövs. Den här konfigurationen håller en minsta mängd kapacitet tillgänglig så att jobben fortsätter.

Tänk på följande metoder när du planerar din användning av virtuella datorer med oanvänd kapacitet:

  • För att maximera användningen av överskottskapacitet i Azure kan lämpliga jobb skalas ut.
  • Ibland kanske virtuella datorer inte är tillgängliga eller är förinställda, vilket resulterar i minskad kapacitet för jobb och kan leda till aktivitetsavbrott och omkörningar.
  • Uppgifter med kortare körningstider brukar fungera bäst med spot-VMs. Jobb med längre aktiviteter kan påverkas mer om de avbryts. Om långvariga processer implementerar kontrollpunkter för att spara sina framsteg när de körs, kan denna påverkan minskas.
  • Långvariga MPI-jobb som använder flera virtuella datorer är inte väl lämpade för Spot-virtuella datorer, eftersom en avbruten virtuell dator kan leda till att hela jobbet måste köras om.
  • Noder kan markeras som oanvända om nätverkssäkerhetsgruppens (NSG) regler har konfigurerats felaktigt.

Skapa och hantera pooler med Spot-VM:er

I en Batch-pool kan man ha både dedikerade och Spot-VMar (även kallade beräkningsnoder). Du kan ange målantalet beräkningsnoder för både dedikerade och Spot-VM. Målantalet noder anger antalet virtuella datorer som du vill ha i poolen.

I följande exempel sker skapandet av en pool med virtuella Azure-datorer, i det här fallet virtuella Linux-datorer, med ett mål på 5 dedikerade virtuella datorer och 20 Spot VM:er.

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

Du kan hämta det aktuella antalet noder för både dedikerade och Spot-VM:er.

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

Poolnoder har en egenskap som anger om noden är en dedikerad eller virtuell dator med oanvänd kapacitet:

bool? isNodeDedicated = poolNode.IsDedicated;

Spot-VMS:er kan ibland avslutas i förtid. När preemption inträffar återställs uppgifter som kördes på de fördefinierade virtuella noddatorerna och körs igen när kapaciteten returneras.

För konfigurationspooler för virtuella datorer utför Batch också följande beteenden:

  • De föranslutna virtuella datorerna befinner sig i tillståndet Preempted.
  • Den virtuella datorn tas bort effektivt, vilket leder till förlust av data som lagras lokalt på den virtuella datorn.
  • En åtgärd för att lista noder i poolen returnerar fortfarande de preemptade noderna.
  • Poolen försöker kontinuerligt nå det målantal av tillgängliga Spot-noder. När ersättningskapacitet hittas behåller noderna sina ID:n, men initieras igen och går igenom skapande- och starttillstånd innan de är tillgängliga för schemaläggning av uppgifter.
  • Antal preemptioner är tillgängliga som ett mått i Azure Portal.

Skala pooler som innehåller Spot VMs

Precis som med pooler som endast består av dedikerade virtuella datorer är det möjligt att skala en pool som innehåller Spot-VM:er genom att anropa Resize-metoden eller använda autoskalning.

Åtgärden för att ändra storlek på poolen tar en andra valfri parameter som uppdaterar värdet på targetLowPriorityNodes:

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

Formeln för automatisk skalning av pool stöder Spot-VM enligt följande:

  • Du kan hämta eller ange värdet för den tjänstdefinierade variabeln $TargetLowPriorityNodes.
  • Du kan hämta värdet för den tjänstdefinierade variabeln $CurrentLowPriorityNodes.
  • Du kan hämta värdet för den tjänstdefinierade variabeln $PreemptedNodeCount. Den här variabeln returnerar antalet noder i förinställt tillstånd och gör att du kan skala upp eller ned antalet dedikerade noder, beroende på antalet fördefinierade noder som inte är tillgängliga.

Konfigurera jobb och uppgifter

Jobb och uppgifter kan kräva lite extra konfiguration för Spot-noder:

  • Egenskapen JobManagerTask för ett jobb har en AllowLowPriorityNode egenskap. När den här egenskapen är aktiverad kan jobbhanteringsuppgiften schemaläggas på antingen en dedikerad nod eller en Spot-nod. Om det är falskt schemaläggs job manager-uppgiften endast till den dedikerade noden.
  • Miljövariabeln AZ_BATCH_NODE_IS_DEDICATED är tillgänglig för ett aktivitetsprogram så att den kan avgöra om den körs på en spot eller på en dedikerad nod.

Visa mått för Spot-VM:ar

Nya mått är tillgängliga i Azure Portal för spotnoder. Dessa mått är:

  • Antal noder med låg prioritet
  • Antal kärnor med låg prioritet
  • Antal förprioriterade noder

Så här visar du dessa mått i Azure Portal:

  1. Navigera till ditt Batch-konto i Azure Portal.
  2. Välj Mått i avsnittet Övervakning .
  3. Välj de metrik som du önskar från Måttlistan.

Begränsningar

  • Virtuella datorer med oanvänd kapacitet i Batch har inte stöd för att ange ett maxpris och stöder inte prisbaserade borttagningar. De kan bara avlägsnas av kapacitetsskäl.
  • Spot-VM:er är endast tillgängliga för VM-konfigurationspooler och inte för molntjänstkonfigurationspooler som är inte längre stöds.
  • Spot-instanser är inte tillgängliga för vissa moln, VM-storlekar och prenumerationstyper. Läs mer om begränsningar för Spot VM.
  • För närvarande stöds inte tillfälliga OS-diskar med Spot VMs på grund av den tjänsthanterade borttagningsprincipen Stop-Deallocate.

Nästa steg

  • Lär dig mer om Batch-tjänstens arbetsflöde och primära resurser , till exempel pooler, noder, jobb och uppgifter.
  • Läs om tillgängliga Batch-API:er och verktyg för att skapa Batch-lösningar.
  • Börja planera övergången från lågprioriterade virtuella datorer till Spot-virtuella datorer. Om du använder lågprioriterade virtuella datorer med Cloud Services-konfigurationspooler (som är inaktuella) planerar du att migrera till vm-konfigurationspooler i stället.