Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Azure Batch kihasználatlan virtuális gépeket (VM-eket) kínál a Batch-számítási feladatok költségeinek csökkentéséhez. A Spot virtuális gépek lehetővé teszik a Batch-feladatok új típusait azáltal, hogy nagy számítási kapacitást biztosítanak alacsony költségen.
A Spot virtuális gépek kihasználják az Azure többletkapacitását. A rendelkezésre álló többletkapacitás mennyisége olyan tényezőktől függ, mint a virtuális gépcsalád, a virtuális gép mérete, a régió és a nap időpontja. Ha Spot virtuális gépeket ad meg a készletekben, az Azure Batch használhatja ezt a többletet, ha elérhető.
A Spot virtuális gépek használatának kompromisszuma, hogy ezeknek a virtuális gépeknek nincs SLA-juk és nincs rendelkezésre állási garanciájuk. A Spot típusú virtuális gépeket bármikor előre megszakíthatják, beleértve a virtuális gép létrehozásának pillanatát is. Ezért a Spot VM-ek a legmegfelelőbbek a kötegelt és aszinkron feldolgozási munkaterhelésekhez, ahol a feladat befejezési ideje rugalmas, és a munka számos virtuális gépre van elosztva.
Ha kisajátítás történik, a Spot számítási csomópontot a rendszer kilépteti, és minden olyan munka elveszik, amely nem lett megfelelően mentett. Az ellenőrzőpont-beállítás nem kötelező, és a Batch végfelhasználójának kell implementálnia. A preemption miatt megszakadt futó Batch-feladat automatikusan újból ütemezésre kerül végrehajtásra egy másik számítási egységen. A korábban leállított virtuális gépeket az Azure platform később visszaállíthatja, de a visszaállítást csak a leállítás utáni első 48 órában kísérlik meg, és nem garantált, hogy sikerülni fog.
A Spot virtuális gépek kedvezményes áron érhetők el a dedikált virtuális gépekhez képest. A díjszabással kapcsolatos további információkért tekintse meg a Batch díjszabását.
Batch támogatás Spot virtuális gépekhez
Az Azure Batch számos olyan képességet biztosít, amelyek megkönnyítik a Spot virtuális gépek használatát és előnyeinek kihasználását.
- A Batch-készletek dedikált virtuális gépeket és Spot virtuális gépeket is tartalmazhatnak. A virtuális gépek egyes típusainak száma megadható egy készlet létrehozásakor, vagy egy meglévő készlet bármikori módosításakor a explicit átméretezési művelet vagy az automatikus skálázás használatával. A feladat- és feladatbeküldés a készletben lévő virtuálisgép-típusoktól függetlenül változatlan maradhat. A készletet úgy is beállíthatja, hogy teljes mértékben Spot virtuális gépeket használjon a feladatok lehető legolcsóbb futtatásához. Ha azonban a kapacitás a minimális küszöbérték alá csökken, dedikált virtuális gépek indíthatók el a folyamatos futtatás érdekében.
- A Batch-készletek automatikusan megkeresik az előzetes kapacitású virtuális gépek célszámát. Ha a virtuális gépek előre ki vannak kapcsolva vagy nem érhetők el, a Batch megpróbálja lecserélni az elveszett kapacitást, és visszatér a célhoz.
- Ha a tevékenységek megszakadnak, a Batch észleli és automatikusan újra lekérdezi a tevékenységeket az újrafuttatáshoz.
- A kihasználatlan virtuális gépek külön vCPU-kvótával rendelkeznek, amely eltér a dedikált virtuális gépekhez tartozótól. A kihasználatlan virtuális gépek kvótája magasabb, mint a dedikált virtuális gépek kvótája, mivel a kihasználatlan virtuális gépek kevesebbe kerülnek. További információ: Batch szolgáltatáskvóták és korlátok.
Megfontolandó szempontok és használati esetek
Számos Batch-számítási feladat jól illeszkedik a Spot virtuális gépek használatához. Érdemes Spot VM-eket használni, ha a feladatok több párhuzamos tevékenységre vannak felosztva, vagy ha sok feladat van skálázva és elosztva számos virtuális gépen.
Néhány példa a Spot virtuális gépekhez jól illeszkedő kötegelt feldolgozási alkalmazási esetekre:
- Fejlesztés és tesztelés: Különösen nagy léptékű megoldások fejlesztése esetén jelentős megtakarítás érhető el. A tesztelés minden típusa előnyös lehet, de a nagy léptékű terheléstesztelés és a regressziós tesztelés kiválóan használható.
- Igény szerinti kapacitás kiegészítése: Spot virtuális gépek használhatók a rendszeres dedikált virtuális gépek kiegészítésére. Amennyiben rendelkezésre állnak, a feladatok méretezhetők és ezáltal gyorsabban befejezhetők alacsonyabb költségek mellett; ha nem, a dedikált virtuális gépek alapértelmezett konfigurációja továbbra is elérhető marad.
- Rugalmas feladatvégrehajtási idő: Ha a feladatok elvégzéséhez rugalmas idő áll rendelkezésre, akkor a kapacitás esetleges csökkenése elviselhető. Spot VMs hozzáadásával azonban a feladatok gyakran gyorsabban futnak, és költségeik alacsonyabbak.
A Batch készletek többféleképpen konfigurálhatók Spot VM-ek használatára.
- Egy pool csak Spot VM-eket használhat. Ebben az esetben a Batch helyreállítja a lefoglalt kapacitást, ha elérhető. Ez a konfiguráció a feladatok végrehajtásának legolcsóbb módja.
- A kihasználatlan virtuális gépek a dedikált virtuális gépek rögzített alapkonfigurációjával használhatók. A dedikált virtuális gépek rögzített száma biztosítja, hogy mindig legyen némi kapacitás a feladatok előrehaladásának fenntartásához.
- A készlet dinamikusan kombinálhatja a dedikált és spot virtuális gépeket, így az olcsóbb spot virtuális gépeket csak akkor használják, ha elérhetőek, de a teljes árú dedikált virtuális gépek szükség esetén felskálázhatók. Ez a konfiguráció minimális kapacitást biztosít a feladatok előrehaladásának fenntartásához.
Spot virtuális gépek használatának tervezésekor tartsa szem előtt az alábbi gyakorlatokat:
- A Azure többletkapacitásának maximalizálása érdekében a megfelelő feladatok felskálázhatók.
- Előfordulhat, hogy a virtuális gépek nem érhetők el, vagy megszakításra kerülnek, ami csökkentett kapacitást eredményez a feladatok számára, és ekkor a feladatok megszakításához és újraindításához vezethet.
- A rövidebb végrehajtási idejű feladatok általában jobban működnek a Spot VM-ek esetén. A hosszabb feladatokat tartalmazó feladatok nagyobb hatással lehetnek, ha megszakadnak. Ha a hosszan futó tevékenységek ellenőrzőpontozást implementálnak a végrehajtás közbeni előrehaladás mentéséhez, ez a hatás csökkenthető.
- A több virtuális gépet használó, hosszan futó MPI-feladatok nem alkalmasak a Spot virtuális gépekre, mert egy előre megszakított virtuális gép miatt az egész feladatot újra kell futtatni.
- A kihasználatlan csomópontok használhatatlanként jelölhetők meg, ha a hálózati biztonsági csoport (NSG) szabályai helytelenül vannak konfigurálva.
Erőforráskészletek létrehozása és kezelése Spot virtuális gépekkel
Egy Batch-készlet dedikált és Spot virtuális gépeket (más néven számítási csomópontokat) is tartalmazhat. A dedikált és a kihasználatlan virtuális gépekhez is beállíthatja a számítási csomópontok célszámát. A csomópontok célszáma határozza meg a készletben használni kívánt virtuális gépek számát.
Előfordulhat, hogy a Spot virtuális gépek időnként el lesznek véve. Ha kisajátítás történik, a kisajátított csomópontok virtuális gépein futó feladatok újra sorba kerülnek, és újból futnak, amikor visszatér a kapacitás. A Batch a következő viselkedéseket is végrehajtja:
- A kisajátított virtuális gépek állapota Preempted-re lett frissítve. Bizonyos esetekben előfordulhat, hogy egy preemptált virtuális gép állapota először Használhatatlan értékre frissül, mielőtt Preemptált állapotba kerül.
- A virtuális gép hatékonyan törlődik, ami a virtuális gépen helyben tárolt adatok elvesztéséhez vezet.
- A készletben lévő listacsomópontok művelete továbbra is az előre megadott csomópontokat adja vissza.
- A csoport folyamatosan megpróbálja elérni a rendelkezésre álló Spot példányok célszámát. Amikor cserekapacitást találnak, a csomópontok megtartják azonosítóikat, de újrainicializálódnak, és a létrehozási és indítási állapotokon haladnak végig, mielőtt elérhetők lennének a feladatok ütemezésére.
- A megszakítások számai metrikaként érhetők el az Azure portálon.
Azure Batch SDK
Az alábbi példa egy készletet hoz létre Azure virtuális gépek használatával, ebben az esetben Linux rendszerűekkel, és 5 dedikált, valamint 20 Spot virtuális gép célként:
BatchImageReference imageRef = new BatchImageReference()
{
Publisher = "Canonical",
Offer = "ubuntu-24_04-lts",
Sku = "server",
Version = "latest"
};
// Create the pool
BatchVmConfiguration vmConfiguration =
new BatchVmConfiguration(imageRef, "batch.node.ubuntu 24.04");
BatchAccountPoolData poolData = new BatchAccountPoolData()
{
VmSize = "Standard_D4s_v3",
DeploymentConfiguration = new BatchDeploymentConfiguration() { VmConfiguration = vmConfiguration },
ScaleSettings = new BatchAccountPoolScaleSettings()
{
FixedScale = new BatchAccountFixedScaleSettings()
{
TargetDedicatedNodes = 5,
TargetLowPriorityNodes = 20
}
}
};
await batchAccount.GetBatchAccountPools().CreateOrUpdateAsync(WaitUntil.Completed, "vmpool", poolData);
A dedikált és a kihasználatlan virtuális gépek csomópontjainak aktuális számát is lekérheti:
BatchAccountPoolResource pool = await batchAccount.GetBatchAccountPools().GetAsync("vmpool");
int? numDedicated = pool.Data.CurrentDedicatedNodes;
int? numLowPri = pool.Data.CurrentLowPriorityNodes;
A készletcsomópontok tulajdonsága jelzi, hogy a csomópont dedikált vagy Spot virtuális gép-e:
BatchNode poolNode = await batchClient.GetNodeAsync("vmpool", "tvm-1");
bool? isNodeDedicated = poolNode.IsDedicated;
A kizárólag dedikált virtuális gépekből álló készletekhez hasonlóan a kihasználatlan virtuális gépeket tartalmazó készletet is skálázhatja a Resize metódus meghívásával vagy az automatikus skálázás használatával.
A készlet átméretezési művelete egy második opcionális paramétert vesz igénybe, amely frissíti a következő targetLowPriorityNodesértékét:
BatchAccountPoolData poolData = pool.Data;
poolData.ScaleSettings = new BatchAccountPoolScaleSettings()
{
FixedScale = new BatchAccountFixedScaleSettings()
{
TargetDedicatedNodes = 0,
TargetLowPriorityNodes = 25
}
};
await pool.UpdateAsync(poolData);
Azure CLI
Hozzon létre egy új készletet "Spot" példányokkal.
az batch pool create \
--id "vmpool" \
--vm-size "Standard_D4s_v3" \
--target-dedicated-nodes 5 \
--target-low-priority-nodes 20 \
--enable-inter-node-communication false \
--image "Canonical:ubuntu-24_04-lts:server" \
--node-agent-sku-id "batch.node.ubuntu 24.04" \
--account-name <your-batch-account-name> \
--account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com"
Létező készlet átméretezése Spot példányok használatára:
az batch pool resize \
--pool-id <existing-pool-id> \
--target-dedicated-nodes 5 \
--target-low-priority-nodes 20 \
--account-name <your-batch-account-name> \
--account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com"
A tár állapotának és csomópontok kiosztásának ellenőrzése
az batch pool show \
--account-name <your-batch-account-name> \
--account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com" \
--pool-id <your-pool-id> \
--query "{State:state, CurrentSpotNodes:currentLowPriorityNodes, TargetSpotNodes:scaleSettings.targetLowPriorityNodes, ResizeErrors:resizeErrors}"
Azure PowerShell
Spot példányokkal csoport létrehozása:
New-AzBatchPool `
-Id "vmpool" `
-VirtualMachineSize "Standard_D4s_v3" `
-TargetDedicatedComputeNodes 5 `
-TargetLowPriorityComputeNodes 20 `
-VirtualMachineImageId "/subscriptions/{subscription}/resourceGroups/{rg}/providers/Microsoft.Compute/images/{image}" `
-BatchContext $context
Érvényesítés a PowerShell-lel:
$pool = Get-AzBatchPool -Id "vmpool" -BatchContext $context
$pool | Select-Object Id, VmSize, @{Name="SpotNodes";Expression={$_.TargetLowPriorityComputeNodes}}, State
Azure Portal
A Azure portálon válassza ki a Batch-fiókot, és tekintse meg a meglévő készletet, vagy hozzon létre egy új készletet.
A Méretezés csoportban válassza ki a dedikált célcsomópontokat vagy a célhelyi/alacsony prioritású csomópontokat.
Meglévő készlet esetén válassza ki a készletet, majd válassza a Méretezés lehetőséget a szükséges Spot csomópontok számának frissítéséhez.
Válassza az Mentésgombot.
Automatikus skálázás spot virtuális gépekkel
A cél VM-ek számának közvetlen beállítása mellett definiálhat egy automatikus méretezési képletet a készlethez. A pool automatikus méretezési képlete az alábbiak szerint támogatja a Spot virtuális gépeket:
- A szolgáltatás által definiált változó
$TargetLowPriorityNodesértékét lekérheti vagy beállíthatja. - A szolgáltatás által definiált változó
$CurrentLowPriorityNodesértékét lekérheti. - A szolgáltatás által definiált változó
$PreemptedNodeCountértékét lekérheti. Ez a változó az előre megadott állapotban lévő csomópontok számát adja vissza, és lehetővé teszi a dedikált csomópontok számának fel- vagy leskálázását attól függően, hogy hány előre megadott csomópont nem érhető el.
További információt a Batch automatikus méretezési útmutatójában talál.
Feladatok és feladatok konfigurálása
A munkák és feladatok további konfigurációt igényelhetnek a Spot csomópontokhoz:
- A
JobManagerTaskfeladat tulajdonsága rendelkezik egy tulajdonságávalAllowLowPriorityNode. Ha ez a tulajdonság igaz, a feladatkezelői feladat ütemezhető dedikált vagy kihasználatlan csomóponton. Ha hamis, a feladatkezelői feladat csak egy dedikált csomópontra van ütemezve. - A
AZ_BATCH_NODE_IS_DEDICATEDkörnyezeti változó elérhető egy feladatalkalmazás számára, így megállapíthatja, hogy egy kihasználatlan vagy egy dedikált csomóponton fut-e.
Spot virtuális gépek metrikáinak megtekintése
Új metrikák érhetők el a Azure portálon a Spot csomópontok esetében. Ezek a metrikák a következők:
- Alacsony prioritású csomópontok száma
- Alacsony prioritású magok száma
- Előzetesen lefoglalt csomópontok száma
A metrikák megtekintése a Azure portálon:
- Lépjen a Batch-fiókjára a Azure portálon.
- Válassza a Metrika lehetőséget a Figyelés szakaszban.
- Válassza ki a kívánt metrikákat a Metrikák listából.
Korlátozások
- A Batch kihasználatlan virtuális gépei nem támogatják a maximális ár beállítását, és nem támogatják az áralapú kizárásokat. Ezeket csak kapacitási okokból lehet kiüríteni.
- A Spot virtuális gépek nem érhetők el egyes felhőkhöz, virtuális gép méretekhez és előfizetési ajánlati típusokhoz. További információ a Spot VM korlátozásokról.
- A rövid élettartamú operációsrendszer-lemezek jelenleg nem támogatottak a spot virtuális gépeknél a Stop-Deallocate szolgáltatás által felügyelt kiürítési szabályzata miatt.
Következő lépések
- Ismerje meg a Batch szolgáltatás munkafolyamatát és az elsődleges erőforrásokat , például készleteket, csomópontokat, feladatokat és feladatokat.
- Megismerheti a Batch-megoldások fejlesztéséhez rendelkezésre álló Batch API-kat és eszközöket.
- Az Azure-beli Spot virtuális gépekről, beleértve a korábbi árak és a kiléptetési arányok megtekintését is, lásd: Spot Virtual Machines.