Pianificazione della capacità per Azure Batch

Una pianificazione efficace della capacità consente di garantire che i carichi di lavoro Azure Batch abbiano le risorse di calcolo necessarie, quando ne hanno bisogno. Questo articolo illustra come strutturare la capacità di Batch, pianificare la quota per i carichi di lavoro e come ridurre il rischio di errori di allocazione.

Una quota è un limite, non una garanzia di capacità. La pianificazione in anticipo consente di richiedere una quota appropriata, scegliere configurazioni resilienti e reagire normalmente quando la capacità è vincolata. Per i valori predefiniti e massimi specifici, vedere Quote e limiti del servizio Batch.

Gerarchia della capacità

La capacità batch è governata a diversi livelli, in cui ogni livello vincola quello sottostante. La capacità effettiva è il limite più restrittivo consentito nella catena.

Nella parte superiore, l'area Azure fornisce la capacità del data center fisico disponibile per ogni famiglia di macchine virtuali. La capacità a livello di area non è un valore fisso controllato dall'utente; varia nel tempo e in base alla serie di macchine virtuali. La quota della sottoscrizione imposta quindi il limite di core consentito per ogni famiglia di macchine virtuali per area. Nella modalità di allocazione del pool di sottoscrizioni utente queste quote di sottoscrizione si applicano direttamente ai pool di Batch. La quota dell'account Batch imposta i core, i pool e i processi attivi consentiti per ogni account Batch. In modalità di allocazione del pool di servizi Batch si applicano queste quote a livello di account. Infine, i limiti del pool limitano il numero di nodi per pool, in base alla quota sopra il pool e ai limiti di dimensioni del pool impostati dal servizio Batch.

La comprensione del livello applicabile all'account dipende dalla modalità di allocazione del pool. Per altre informazioni, vedi account Batch e modalità di allocazione del pool.

Pianificare i requisiti di capacità

Prima di creare pool di produzione, stimare le risorse necessarie per il carico di lavoro. Esaminare le domande seguenti per tradurre le caratteristiche del carico di lavoro in una richiesta di quota:

  • Profilo del carico di lavoro. Qual è il numero massimo di processi e attività simultanei? Qual è la durata media dell'attività e il requisito di memoria? Le attività richiedono GPU o il coordinamento multi-nodo (MPI)?
  • Selezione della macchina virtuale. Quale famiglia di macchine virtuali e dimensioni meglio corrisponde al carico di lavoro? Quanti core e quantità di memoria vengono forniti da ogni macchina virtuale?
  • Dimensionamento del pool Quante attività vengono eseguite simultaneamente per ogni nodo (fino a quattro volte il numero di core del nodo, con un massimo di 256 slot di attività per nodo)? Dato il numero massimo di attività simultanee, quanti nodi sono necessari? Come si suddivide la capacità tra nodi dedicati e spot?
  • Requisito di quota. Moltiplicare il numero massimo di nodi per i core di ciascuna macchina virtuale per ottenere il numero totale di core necessari. Confrontare il totale rispetto alla quota corrente per determinare l'aumento da richiedere.
  • Preventivo. Usare la frequenza oraria della macchina virtuale e il tempo di esecuzione previsto per stimare il costo giornaliero e mensile. Per altre informazioni, vedere Pianificare la gestione dei costi per Azure Batch.

Per controllare le quote correnti e richiedere un aumento, vedere Visualizzare le quote batch e Aumentare una quota. Inviare le richieste di quota in anticipo e iniziare con aumenti modesti e incrementali. L'aumento delle quote di grandi dimensioni potrebbe richiedere una revisione manuale e può richiedere diversi giorni a diverse settimane.

Gestire la capacità in modo proattivo

Pianificare la capacità prima che diventi un vincolo:

  • Monitorare l'utilizzo della quota. Monitorare l'utilizzo dei core rispetto alla quota e inviare avvisi quando l'utilizzo si avvicina al limite, ad esempio al 70–80%. Per altre informazioni, vedere Monitorare le soluzioni Batch.
  • Usa la scalabilità automatica. Configurare il ridimensionamento automatico in modo che i pool aumentano e si riducono con la domanda invece di contenere un numero fisso di nodi con provisioning eccessivo. Un modello comune mantiene un livello base di nodi dedicati per garantire un avanzamento costante e ricorre temporaneamente ai nodi Spot per aumentare la capacità di elaborazione.
  • Distribuzione tra aree e account. Distribuire i carichi di lavoro tra più aree o account Batch per accedere a una capacità di aggregazione maggiore. Le quote di servizio, ad esempio i processi attivi e i pool, si applicano a ciascun account Batch.

Gestire i vincoli di capacità

Anche con la pianificazione, è possibile che si verifichino errori di allocazione. Progettare il flusso di lavoro in modo che sia resiliente:

  • Riprovare e diversificare. Se un pool non riesce a raggiungere le dimensioni di destinazione, riprovare dopo alcuni minuti, provare a usare dimensioni di macchina virtuale diverse o provare un'area diversa. Modifiche alla disponibilità delle risorse nel tempo.
  • Reindirizzare nuovamente i processi. Evitare di basarsi su un singolo pool statico. Verificare di poter reindirizzare i processi a un pool diverso, eventualmente con una dimensione della VM diversa, se un pool non può espandersi. Per ulteriori informazioni, vedere le procedure consigliate di Azure Batch.
  • Creare per la revoca delle istanze Spot.I nodi Spot possono essere revocati quando Azure ha nuovamente bisogno della capacità. Usare i nodi Spot solo per il lavoro a tolleranza di errore e combinarli con nodi dedicati e scalabilità automatica in modo che il pool venga ripristinato automaticamente.

Per i sintomi dettagliati, le cause e le risoluzioni degli errori di allocazione e quota, vedere le linee guida per la risoluzione dei problemi:

Procedure consigliate

Pratica Description
Richiedi quota anticipata Inviare le richieste di quota in anticipo; grandi aumenti possono richiedere diversi giorni a diverse settimane.
Pianificare un margine di capacità Richiedere una quota leggermente maggiore rispetto al picco corrente per consentire la crescita.
Usare più aree Distribuire i carichi di lavoro tra aree per accedere a una maggiore capacità di aggregazione.
Monitorare l'utilizzo Avvisa quando l'utilizzo principale raggiunge 70-80% della quota.
Macchine virtuali di dimensioni appropriate Associare la famiglia e le dimensioni delle VM al carico di lavoro invece di sovradimensionare le risorse.
Usare Spot saggiamente Riservate i nodi Spot per i carichi di lavoro tolleranti agli errori e abbinateli a nodi dedicati.
Pulire le risorse Eliminare i pool inutilizzati per liberare la quota dell'account.

Passaggi successivi