Sdílet prostřednictvím


Použití spotových virtuálních počítačů v Azure CycleCloudu

Azure CycleCloud podporuje nasazování spotových virtuálních počítačů v nodearrays, aby se výrazně snížily provozní náklady na clustery.

Upozornění

Spotové virtuální počítače nejsou vhodné pro všechny úlohy a typy clusterů. Nenabízí žádnou smlouvu SLA pro dostupnost nebo kapacitu. Jedná se o instance s nízkou prioritou nebo "s nízkou prioritou" a prostředky infrastruktury Azure je vyřadí za účelem správy kapacity a změny spotových cen.

Konfigurace nodearray pro spot

Pokud chcete povolit spot pro nodearray, jednoduše nastavte Interruptible hodnotu true v oddílu [[nodearray]] .

CycleCloud umožňuje clusterům zadat MaxPrice pro spotové instance. Vzhledem k tomu, že spotová cena se může pravidelně upravovat a může se výrazně lišit mezi oblastmi a skladovými položkami, MaxPrice umožňuje uživatelům řídit maximální cenu (v $/hodině), kterou jsou ochotni zaplatit za virtuální počítač. Ve výchozím nastavení nastaví CycleCloud MaxPrice=-1 , pokud není zadán jinak, což znamená" "nevyřazuje se na základě spotové ceny". V tomto nastavení se instance vyřadí jenom kvůli změnám požadavků na kapacitu nebo jiným rozhodnutím na úrovni platformy.

Podrobnosti o cenách proměnných pro spotové instance najdete v tématu Spotové ceny .

Pro většinu aplikací MaxPrice=-1 HPC je vhodná výchozí volba. Pokud ale nodearray podporuje automatické škálování s vícenásobným výběrem napříč rozsahem skladových položek virtuálních počítačů, MaxPrice můžete si také přizpůsobit, aby se v seznamu s vícenásobným výběrem vytvořila předvolba pro cenové skladové položky s nižší cenou.

[cluster demo]

  [[nodearray execute]]
  Interruptible = true
  MaxPrice = 0.2

Úplné podrobnosti najdete v tématu Spot Virtual Machines v průvodci šablonou clusteru.

Vyřazení spotových virtuálních počítačů

CycleCloud monitoruje spotové vyřazení prostřednictvím funkce Naplánované události . Když se zjistí událost preempce spotu, zobrazí se virtuální počítač oznámení CycleCloudu a instance se přesune do stavu čekání na vyřazení.

Nejčastější dotazy

Použití spotu s CycleCloudem má určité aspekty, které jsou specifické pro úlohy HPC a automatické škálování CycleCloudu.

Kdy mám zvážit použití spotu?

  • Jsou vaše individuální pracovní pozice relativně krátké?
    • Dobrým pravidlem je, že úlohy spuštěné pod jednou hodinou můžou být vhodné pro spotové instance, protože v případě vyřazení instance dojde ke ztrátě relativně malého průběhu dopředu.
  • Provádí plánovač úlohy automatického opakování nebo opětovného vytvoření fronty na hostitelích, které selžou?
  • Jsou vaše úlohy bezpečné znovu spustit, pokud se hostitel během provádění vyřazuje?
    • Obecně platí, že spotové instance jsou nejvhodnější pro bezstavové úlohy.
  • Minimalizujete náklady na spuštění důležitější než čas dokončení?
    • Spot je často ideální pro úlohy, které můžou být naplánované v místních frontách s nízkou prioritou nebo back-fill.
    • Jedná se o jeden z případů, kdy spot může být vhodný i pro krátké úlohy MPI.

Kdy se mám vyhnout používání spotu?

  • Pokud jsou vaše úlohy úzce propojené s prostředím HPC (například úlohy MPI), pravděpodobně nejsou vhodnými kandidáty na spot.
  • Pokud je vaše úloha kritická nebo má termín dokončení, můžou být běžné instance priority vhodnější, protože vyřazení a opakování může prodloužit dobu dokončení.
    • Může to ale být skvělá příležitost ke konfiguraci clusteru tak, aby používala kombinaci instancí s běžnou prioritou a spotovými instancemi, aby se zajistilo splnění konečného termínu při pokusu o snížení běhu a nákladů přidáním spotových instancí.
  • Pokud vaše úlohy nejsou bezpečné k opětovnému spuštění, měli byste se vyhnout spotu.
    • Pokud například vaše úloha změní databázi během provádění, může automatické opětovné spuštění úlohy způsobit chyby nebo neplatné výsledky.
  • Pokud jsou moduly runtime úloh velmi dlouhé, nemusí být spot vhodný.
    • U dlouhých procesů se zvýší šance na vyřazování spotů i dolar a časové náklady na opakování.
    • Jedná se však o případ, který může vyžadovat měření podle případu.

Vyřazení / preempce

Podrobnosti o vyřazování spotových vyřazení v Azure najdete v tématu Zásady vyřazování spotů.

Otázka: Může CycleCloud sledovat vyřazování a preemptions spotové instance?

A. Ano. Událost vyřazování spotů vygeneruje oznámení protokolu událostí na stránce uživatelského rozhraní clusterů.

Otázka: Jak jsou uživatelé upozorněni na vyřazení?

A. Po vyřazení uzlu CycleCloud se uživatelům v protokolu událostí uživatelského rozhraní CycleCloud pro cluster zobrazí zpráva protokolu. Uživatelé se můžou také zaregistrovat k přijetí události z CycleCloudu přes Azure EventGrid po vyřazení spotové instance.

  • Uživatelé můžou na počítači 30 sekund před vyřazením zkontrolovat oznámení o vyřazení. Podrobnosti o registraci události najdete v tématu Naplánované události .
  • Obecně platí, že vyřazení by mělo být považováno za podobné, jako by se přitahování zástrčky na místním počítači mělo považovat za vyřazování a mělo by se zpracovávat stejným způsobem.
  • DŮLEŽITÉ Obslužné rutiny událostí by neměly potvrdit událost vyřazování spotů, protože obslužná rutina události Cyclecloud nemusí přijímat událost, pokud je potvrzena.

Otázka: Jak často dochází k vyřazení?

A. Míra vyřazení je vysoce proměnlivá a do značné míry závislá na změnách v poptávce v celé oblasti.

Otázka: Proč jsou instance vyřazeny?

A. Spotové virtuální počítače nezaručují dostupnost a mohou být kdykoli vyřazeny. Podrobnosti najdete v dokumentaci k spotovém virtuálním počítači. Pokud uzelarray nastavil, MaxPrice instance se vyřadí, pokud se spotová cena zvýší nad .MaxPrice To bývá vzácné , protože spotová cena se pohybuje velmi pomalu. Tady jsou některé scénáře, které můžou aktivovat vyřazení:

  1. Snížení spotové kapacity při nárůstu poptávky po pravidelných virtuálních počítačích s prioritou
  2. Události na úrovni platformy, jako je plánovaná údržba hardwaru.

Jak má můj pracovní postup vliv na vyřazení?

Otázka: Co se stane s mými úlohami, když se vyřadí spotová instance?

A. Pokud nejsou úlohy zakódované tak, aby zpracovávaly oznámení o vyřazení 30 sekund a správně zpracovávaly, uzel se jednoduše ukončí a úloha se nezdaří (a doufejme, že se to zkusí znovu).

Otázka: Odstraní se uzly z clusteru?

A. Ano, uzly se v uživatelském rozhraní CycleCloud vyčistí. V podporovaných plánovačích se uzly také vyčistí v plánovači.

Otázka: Musí být úlohy znovu spuštěné?

A. Obecně platí, že se jedná o úlohu plánovače, která znovu zkusí nebo znovu spustí úlohy, které jsou vyřazeny. Mnoho tříd úloh však není odolné proti opakovaným pokusům (například pokud při spuštění zapisují částečná data do trvalého úložiště). Tyto úlohy nemusí být vhodným kandidátem pro provádění ve spotových instancích.

Otázka: Můžu použít kombinaci spotových virtuálních počítačů a virtuálních počítačů s pravidelnou prioritou na vyžádání?

A. Ano. K vytvoření kombinace spotových a regulárních priorit můžete použít samostatné spotové aInterruptible ne spotové uzly. Použití kombinace typů instancí obecně vyžaduje rozhodnutí o konfiguraci v závislosti na požadavcích a plánovači, který uživatel zvolil. Tady je několik běžných konfigurací:

  • Oddělte spotové a Regular-Priority virtuální počítače do samostatných front v plánovači.
    • Tato konfigurace umožňuje odesílaní snadno cílit úlohy na příslušném typu virtuálního počítače.
  • Vytvořte jeden velký fond zdrojů s instancemi Spot i Regular-Priority.
    • Tato konfigurace může být užitečná pro vysoce škálovatelné úlohy, které používají malé procento pravidelných instancí priority k zajištění průběhu předávání a velkého procenta spotu, aby se snížily náklady a modul runtime.

Otázka: Můžu změnit zásady vyřazení spotů pro uzly CycleCloud?

A. Ano. Atribut můžete nastavit EvictionPolicy přímo na nodearray a změnit zásadu na buď Delete nebo Deallocate (výchozí: Delete). To je ale v současné době užitečné jenom pro vlastní automatické škálování, které zpracovávají přidělení odpovídajícím způsobem. Aktuální automatické škálování Azure CycleCloudu očekává odstranění spotových instancí po vyřazení.

Podpora plánovače spotového vyřazení v CycleCloudu

Podrobné informace o implementaci CycleCloud pro plánovače najdete v průvodci konkrétním plánovačem.

Otázka: Jak automatické škálování pro můj plánovač zpracovává přímé vyřazení?

A. Všechny automatické škálování pro předdefinované/podporované plánovače (HTCondor, GridEngine, PBS Professional, Slurm, LSF) se pokoušejí řádně zpracovat spotové vyřazení. Obecně platí, že vyřazená instance se odebere z Plánovače a pokud je poptávka po vyřazení vyšší než nová dostupná kapacita, automatické škálování nahradí instanci.

Vlastní automatické škálování by měly být sestaveny tak, aby očekávaly přímé vyřazení nebo obecná selhání počítačů a zpracovávaly je elegantně.

Otázka: Co mám očekávat u úloh spuštěných v vyřazené instanci?

A. To je z velké části až na uživatele, aby při odesílání úlohy nakonfigurovali. Některé plánovače, jako je GridEngine, umožňují také nakonfigurovat výchozí akci pro každou frontu. Ve výchozím nastavení jsou všechna integrovaná nasazení plánovače CycleCloud s výjimkou HTCondor nakonfigurovaná tak, aby při vyřazení nebo neočekávaném ukončení uzlu označila úlohy jako neúspěšné. Toto chování je návrhem, protože pouze uživatel může vědět, jestli se jejich úlohy můžou bezpečně opakovat.