Dela via


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

Azure Batch erbjuder virtuella datorer med oanvänd kapacitet för att minska kostnaden för Batch-arbetsbelastningar. Virtuella datorer med oanvänd kapacitet gör nya typer av Batch-arbetsbelastningar möjliga 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 överskottskapacitet 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ördefinierade 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 fördefinierade virtuella datorer till 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 vm-skalningsuppsättningar.
  • 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 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 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 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 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ä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 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 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 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 aktiviteter avbryts identifierar Batch och returnerar automatiskt uppgifter för att 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 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 virtuella datorer med oanvänd kapacitet ä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 kapaciteten 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 den inte är tillgänglig förblir baslinjen för dedikerade virtuella datorer tillgänglig.
  • Flexibel körningstid för jobb: Om det finns flexibilitet när 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 ett jobb ska fortsätta.
  • 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 fullständiga dedikerade virtuella datorerna 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 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 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 å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ördefinierade 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 skalningsnoder. 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-portalen.

Skala pooler som innehåller virtuella datorer med oanvänd kapacitet

Precis som med pooler som endast 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 med 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 pool stöder virtuella datorer med oanvänd kapacitet 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 noder med oanvänd kapacitet:

  • Egenskapen JobManagerTask för ett jobb har en AllowLowPriorityNode egenskap. När den här egenskapen är sann kan jobbhanteraraktiviteten schemaläggas på antingen en dedikerad nod eller dekornod. Om det är falskt schemaläggs jobbhanteraraktiviteten endast till en dedikerad nod.
  • 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 virtuella datorer med oanvänd kapacitet

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

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

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

  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 maxpris och stöder inte prisbaserade borttagningar. De kan bara avlägsnas av kapacitetsskäl.
  • Virtuella datorer med oanvänd kapacitet är endast tillgängliga för vm-konfigurationspooler och inte för molntjänstkonfigurationspooler som är inaktuella.
  • Virtuella datorer med oanvänd kapacitet är inte tillgängliga för vissa moln, VM-storlekar och prenumerationserbjudandetyper. Läs mer om begränsningar för virtuella datorer med 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 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 virtuella datorer med oanvänd kapacitet. 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.