Använda virtuella datorer för oanvänd kapacitet med Batch-arbetsbelastningar

Azure Batch erbjuder virtuella datorer med oanvänd kapacitet (VM) för att minska kostnaden för Batch-arbetsbelastningar. Virtuella datorer med oanvänd kapacitet möjliggör nya typer av Batch-arbetsbelastningar genom att en stor mängd beräkningskraft kan användas till en låg kostnad.

Virtuella datorer med oanvänd kapacitet drar nytta av överkapacitet i Azure. När du anger virtuella datorer med oanvänd kapacitet i dina pooler kan Azure Batch använda det här överskottet när det är tillgängligt.

Kompromissen med att använda virtuella datorer med oanvänd kapacitet är att dessa virtuella datorer kanske inte alltid är tillgängliga, eller att de kan bli förutbestämda när som helst, beroende på tillgänglig kapacitet. Därför är virtuella datorer med oanvänd kapacitet lämpligast för batch- och asynkrona bearbetningsarbetsbelastningar där jobbets slutförandetid är flexibel och arbetet 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 virtuella datorer med oanvänd kapacitet och låg prioritet

Batch erbjuder två typer av virtuella datorer med låg kostnad:

  • Virtuella datorer med oanvänd kapacitet, ett modernt Azure-erbjudande som även är tillgängligt som virtuella datorer med en instans eller Virtual Machine Scale Sets.
  • 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 virtuella datorer med oanvänd kapacitet. Batch-konton som använder batchhanterad 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 virtuella datorer med oanvänd kapacitet i Batch innan dess.

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

Virtuella Spot-datorer Lågprioriterade virtuella datorer
Batch-konton som stöds Batch-konton för användarprenumeration Batchhanterade Batch-konton
Konfigurationer för 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 virtuella datorer med oanvänd kapacitet Alla regioner utom Microsoft Azure som drivs av 21Vianet
Kundberättigande Inte tillgängligt för vissa typer av prenumerationserbjudande. Läs mer om begränsningar för oanvänd kapacitet. Tillgängligt 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 Med förbehåll för kärnkvoter för din prenumeration Med förbehåll för kärnkvoter för ditt Batch-konto
Serviceavtal för tillgänglighet Inga Inga

Batch-stöd för virtuella datorer med oanvänd kapacitet

Azure Batch har flera funktioner som gör det enkelt att använda och dra nytta av virtuella datorer med oanvänd kapacitet:

  • Batch-pooler kan innehålla både dedikerade virtuella datorer och virtuella datorer med oanvänd kapacitet. Antalet för varje typ av virtuell dator 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ändringsåtgärden eller med hjälp av autoskalning. Jobb- och uppgiftsöverföringen 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 virtuella datorer med oanvänd kapacitet. 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 aktiviteterna avbryts identifierar och anropar Batch automatiskt aktiviteter som ska köras igen.
  • Virtuella datorer med oanvänd kapacitet 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 virtuella datorer med oanvänd kapacitet. Överväg att använda virtuella datorer med oanvänd kapacitet när jobb delas in 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 virtuella datorer med oanvänd kapacitet är:

  • Utveckling och testning: Om storskaliga lösningar utvecklas kan betydande besparingar realiseras. Alla typer av testning kan dra nytta av, men storskalig belastningstestning och regressionstestning är bra användningsområden.
  • Komplettera kapacitet på begäran: Virtuella datorer med oanvänd kapacitet 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 de inte är tillgängliga förblir baslinjen för dedikerade virtuella datorer tillgänglig.
  • Flexibel körningstid för jobb: Om det finns flexibilitet i den tid som jobben måste slutföras 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 virtuella datorer med oanvänd kapacitet på några olika sätt:

  • En pool kan endast använda virtuella datorer med oanvänd kapacitet. 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 med oanvänd kapacitet kan användas med en fast baslinje för dedikerade virtuella datorer. Det fasta antalet dedikerade virtuella datorer säkerställer att det alltid finns viss kapacitet för att hålla ett jobb förlopp.
  • En pool kan använda en dynamisk blandning av dedikerade och virtuella datorer med oanvänd kapacitet, så att de billigare virtuella spotdatorerna endast används när de är tillgängliga, men de dedikerade virtuella datorerna med fullpris 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 att använda virtuella datorer med oanvänd kapacitet:

  • För att maximera användningen av överkapacitet i Azure kan lämpliga jobb skalas ut.
  • Ibland kanske virtuella datorer inte är tillgängliga eller förinstallerade, 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 virtuella datorer med oanvänd kapacitet. Jobb med längre aktiviteter kan påverkas mer om de avbryts. Om långvariga uppgifter implementerar kontrollpunkter för att spara förlopp när de körs kan den här effekten minskas.
  • Långvariga MPI-jobb som använder flera virtuella datorer passar inte bra för virtuella datorer med oanvänd kapacitet, eftersom en förinstallerad virtuell dator kan leda till att hela jobbet måste köras igen.
  • Oanvändbara noder kan markeras som oanvändbara om NSG-regler (Network Security Group) har konfigurerats felaktigt.

Skapa och hantera pooler med virtuella datorer med oanvänd kapacitet

En Batch-pool kan innehålla både dedikerade och virtuella datorer med oanvänd kapacitet (kallas även beräkningsnoder). Du kan ange målantalet beräkningsnoder för både dedikerade och virtuella datorer med oanvänd kapacitet. Målantalet noder anger antalet virtuella datorer som du vill ha i poolen.

I följande exempel skapas en pool med virtuella Azure-datorer, i det här fallet virtuella Linux-datorer, med målet 5 dedikerade virtuella datorer och 20 virtuella datorer med oanvänd kapacitet:

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 virtuella datorer med oanvänd kapacitet:

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;

Virtuella datorer med oanvänd kapacitet kan ibland föregripas. När preemption inträffar begärs uppgifter som kördes på de förinstallerade virtuella noddatorerna igen och körs igen när kapaciteten returneras.

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

  • De förinstallerade virtuella datorerna har sitt tillstånd uppdaterat till Preempted.
  • Den virtuella datorn tas bort effektivt, vilket leder till förlust av data som lagras lokalt på den virtuella datorn.
  • En listnodåtgärd i poolen returnerar fortfarande de fördefinierade noderna.
  • Poolen försöker kontinuerligt nå målantalet tillgängliga noder för oanvänd kapacitet. När ersättningskapacitet hittas behåller noderna sina ID:ar, men initieras på nytt och går igenom Skapande - och starttillstånd innan de är tillgängliga för schemaläggning.
  • Antal före borttagning är tillgängliga som ett mått i Azure Portal.

Skalningspooler som innehåller virtuella datorer för oanvänd kapacitet

Precis som med pooler som enbart består av dedikerade virtuella datorer är det möjligt att skala en pool som innehåller virtuella datorer med oanvänd kapacitet genom att anropa Resize metoden eller genom att använda autoskalning.

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

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

Formeln för automatisk skalning av pooler stöder virtuella datorer med oanvänd kapacitet på följande sätt:

  • 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örinställda noder som inte är tillgängliga.

Konfigurera jobb och uppgifter

Jobb och uppgifter kan kräva viss extra konfiguration för noder för oanvänd kapacitet:

  • Egenskapen JobManagerTask för ett jobb har en AllowLowPriorityNode egenskap. När den här egenskapen är sann kan job manager-aktiviteten schemaläggas på antingen en dedikerad nod eller nod för oanvänd kapacitet. Om det är falskt schemaläggs job manager-aktiviteten endast till en dedikerad nod.
  • MiljövariabelnAZ_BATCH_NODE_IS_DEDICATED är tillgänglig för ett aktivitetsprogram så att den kan avgöra om den körs på en Punkt eller på en dedikerad nod.

Visa mått för virtuella datorer med oanvänd kapacitet

Nya mått är tillgängliga i Azure Portal för noder för oanvänd kapacitet. Dessa mått är:

  • Low-Priority antal noder
  • Low-Priority antal kärnor
  • Antal förinstallerade 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 mått som du vill använda i listan Mått .

Begränsningar

  • Virtuella datorer med oanvänd kapacitet i Batch har inte stöd för att ange ett högsta pris och stöder inte prisbaserade borttagningar. De kan bara avlägsnas av kapacitetsskäl.
  • Virtuella datorer för oanvänd kapacitet är endast tillgängliga för konfigurationspooler för virtuella datorer och inte för molntjänstkonfigurationspooler, som är inaktuella.
  • Virtuella datorer för oanvänd kapacitet är inte tillgängliga för vissa moln, VM-storlekar och prenumerationserbjudandetyper. Läs mer om vm-begränsningar för oanvänd kapacitet.
  • För närvarande stöds inte tillfälliga OS-diskar med virtuella datorer med oanvänd kapacitet på grund av den tjänsthanterade avlägsningsprincipen stop-deallocate.

Nästa steg