Procedure consigliate Pool
Questo articolo illustra quali pool sono e come è possibile configurarli al meglio. Per informazioni sulla creazione di un pool, si veda Informazioni di riferimento sulla configurazione del pool.
Nota
Se il carico di lavoro supporta il calcolo serverless, Databricks consiglia di usare il calcolo serverless anziché i pool per sfruttare il calcolo sempre attivo e scalabile. Si veda Connettersi al calcolo serverless.
Considerazioni per il pool
Quando si crea un pool, tenere conto di quanto segue:
- Creare pool usando i tipi di istanza e i runtime di Azure Databricks in base ai carichi di lavoro di destinazione.
- Quando possibile, popolare i pool con istanze spot per ridurre i costi. Usare pool spot solo come nodi di lavoro. Il nodo driver deve usare istanze su richiesta.
- Popolare i pool con istanze su richiesta per i processi con tempi di esecuzione brevi e requisiti di tempo di esecuzione rigorosi.
- Usare i tag del pool e i tag del cluster per gestire la fatturazione.
- Precompilare i pool per assicurarsi che le istanze siano disponibili quando sono necessarie per i cluster.
Creare pool in base ai carichi di lavoro
È possibile ridurre al minimo il tempo di acquisizione dell'istanza creando un pool per ogni tipo di istanza e il runtime di Azure Databricks comunemente usato dall'organizzazione. Ad esempio, se la maggior parte dei cluster di progettazione dati usa il tipo di istanza A, i cluster di data science usano il tipo di istanza B e i cluster di analisi usano il tipo di istanza C, creare un pool con ogni tipo di istanza.
Uso di pool di istanze spot
Se il nodo driver e i nodi di lavoro hanno requisiti diversi, usare pool diversi per ognuno di essi.
Azure Databricks consiglia di non usare istanze spot per il nodo driver. Se si usa un pool spot per il nodo di lavoro, selezionare un pool on demand come tipo di driver.
Popolare i pool con istanze on demand per i processi con tempi di esecuzione brevi e requisiti di tempo di esecuzione rigorosi. Usare istanze on demand per impedire che le istanze acquisite vadano perse a favore di un offerente più alto sul mercato spot.
Configurare i pool per l'uso di istanze spot per i cluster che supportano lo sviluppo interattivo o i processi che assegnano priorità ai risparmi sui costi rispetto all'affidabilità.
Contrassegnare i pool per gestire i costi e la fatturazione
L'assegnazione di tag ai pool nel centro di costo corretto consente di gestire il chargeback dei costi e dell'utilizzo. È possibile usare più tag personalizzati per associare più centri di costo a un pool. Tuttavia, è importante comprendere come vengono propagati i tag quando viene creato un cluster dai pool. I tag dei pool si propagano alle istanze del provider di servizi cloud sottostanti, ma i tag del cluster non lo fanno. Applicare tutti i tag personalizzati necessari per gestire il chargeback dei costi di calcolo del provider di servizi cloud al pool.
I tag del pool e i tag del cluster vengono propagati entrambi alla fatturazione di Azure Databricks. È possibile usare la combinazione di tag del cluster e del pool per gestire il chargeback delle unità di Azure Databricks.
Per altre informazioni, si veda Monitorare l'utilizzo usando i tag.
Configurare i pool per controllare i costi
È possibile usare le opzioni di configurazione seguenti per controllare il costo dei pool:
- Impostare le istanze di min idle
su 0 per evitare di pagare per le istanze in esecuzione che non funzionano. Il compromesso è un possibile aumento del tempo necessario affinché un cluster acquisisca una nuova istanza. - Impostare la capacità massima in base al previsto utilizzo. In questo modo viene impostato il limite massimo per il numero massimo di istanze usate e inattive nel pool. Se un processo o un cluster richiede un'istanza da un pool alla capacità massima, la richiesta ha esito negativo e il cluster non acquisisce più istanze. Di conseguenza, Databricks consiglia di impostare la capacità massima solo se è presente una quota di istanza o un vincolo di budget rigoroso.
- Impostare la terminazione automatica dell'istanza inattiva tempo per fornire un buffer tra quando l'istanza viene rilasciata dal cluster e quando viene eliminata dal pool. Impostare questo valore su un periodo che consente di ridurre al minimo i costi garantendo al tempo stesso la disponibilità delle istanze per le attività programmate. Ad esempio, l'attività A è pianificata per l'esecuzione alle 8:00 del mattino e il completamento richiede 40 minuti. Il Job B è pianificato per essere eseguito alle 9:00 e richiede 30 minuti per il completamento. Impostare il valore di terminazione automatica dell'istanza inattiva su 20 minuti per assicurarsi che le istanze restituite al pool al termine del processo A siano disponibili all'avvio del processo B. A meno che non vengano richieste da un altro cluster, tali istanze vengono terminate 20 minuti dopo il termine del job B.
Popolamento preliminare dei pool
Per trarre vantaggio completamente dai pool, è possibile precompilare i pool appena creati. Impostare le istanze inattive minime maggiori di zero nella configurazione del pool. In alternativa, se si segue la raccomandazione di impostare questo valore su zero, usare un processo iniziale per assicurarsi che i pool appena creati dispongano di istanze disponibili per l'accesso ai cluster.
Con l'approccio del processo iniziale, pianificare un processo con requisiti di tempo di esecuzione flessibili da eseguire prima dei processi con requisiti di prestazioni più rigorosi o prima che gli utenti inizino a usare cluster interattivi. Al termine del processo, le istanze usate per il processo vengono rilasciate nuovamente al pool. Impostare l'impostazione Istanza minima inattiva a 0 e impostare il tempo di terminazione automatica dell'istanza inattiva sufficientemente alto da garantire che le istanze inattive rimangano disponibili per i lavori successivi.
L'uso di un processo iniziale consente alle istanze del pool di avviare, popolare il pool e rimanere disponibili per i cluster interattivi o processi downstream.