Selezione automatica delle VM

Quando ancori un job a un tipo di macchina specifico utilizzando l'opzione della pipeline workerMachineType, rischi di riscontrare ritardi o errori del job a causa dell'esaurimento delle scorte di risorse. La selezione automatica delle VM risolve questo problema scegliendo automaticamente i worker da un pool di tipi di macchine compatibili e disponibili utilizzando la flessibilità delle istanze di Compute Engine . In questo modo, le pipeline Dataflow acquisiscono capacità in modo affidabile, il che ti aiuta a mantenere prestazioni coerenti ed evitare interruzioni.

Configurazioni non supportate

La selezione automatica delle VM è disattivata se la pipeline è configurata con uno dei seguenti elementi:

  • Dataflow Prime è abilitato.
  • L'opzione della pipeline min_cpu_platform è impostata.
  • Vengono utilizzati dischi Hyperdisk Balanced o prestazioni di cui è stato fatto il provisioning personalizzato (IOPS e throughput). I job avviati con queste configurazioni non riusciranno.
  • Confidential VM è abilitata.
  • Sono necessari acceleratori (GPU o TPU).

Inoltre, la selezione automatica delle VM non è supportata per i job che utilizzano Shuffle Appliance o Streaming Appliance.

Abilita la selezione automatica delle VM

La selezione automatica delle VM viene abilitata automaticamente in uno dei seguenti scenari:

Comportamento della selezione automatica delle VM

Configura i suggerimenti sulle risorse min_ram e cpu_count singolarmente o in combinazione. Ad esempio:

  1. Un job con solo cpu_count=2 può eseguire il provisioning di istanze con n4-standard-2 (2 vCPU, 8 GB di RAM), c4-standard-2 (2 vCPU, 7 GB di RAM) e altri tipi di macchine.
  2. Un job con cpu_count=4 e min_ram=16GB può eseguire il provisioning di istanze con n4-standard-4 (4 vCPU, 16 GB di RAM), c4-highmem-4 (4 vCPU, 31 GB di RAM) e altri tipi di macchine.

La selezione automatica delle VM ottimizza la selezione delle VM per l'ottenibilità delle risorse. Ciò significa che potresti riscontrare una riduzione del rendimento durante l'utilizzo della selezione automatica delle VM per migliorare l'ottenibilità di alcuni dei tuoi job altamente ottimizzati. Ti consigliamo di testare la selezione automatica delle VM su un sottoinsieme dei job esistenti prima di eseguirne gradualmente il deployment su una scala più ampia. Per saperne di più sull'ottenibilità, consulta Migliorare l'ottenibilità delle risorse per i job nella documentazione di Batch.

Dataflow tenta di utilizzare prima le famiglie di macchine di quarta generazione (ad esempio N4 o C4) per offrire una maggiore efficienza. Se le macchine di quarta generazione non sono disponibili nella tua regione, non hanno una quota sufficiente o non sono compatibili con le tue configurazioni, Dataflow esegue automaticamente il fallback alle famiglie di macchine di seconda generazione ampiamente disponibili (ad esempio N2 o E2) per garantire che il job possa essere avviato senza ritardi di capacità.

Se specifichi un tipo di disco come pd-ssd o pd-standard quando abiliti la selezione automatica delle VM utilizzando i suggerimenti sulle risorse (adeguamento), Dataflow esegue il provisioning solo delle famiglie di macchine di seconda generazione compatibili. Per garantire la massima compatibilità e consentire l'utilizzo delle generazioni di macchine più recenti, non assegnare un tipo di disco.

Prenotazioni di Compute Engine

Se utilizzi le prenotazioni di Compute Engine con la selezione automatica delle VM, tieni presente quanto segue:

  • Se hai configurato le prenotazioni in modo che vengano utilizzate automaticamente, potrebbero essere utilizzate se la selezione automatica delle VM esegue il provisioning di tipi di macchine che corrispondono alla prenotazione.
  • La selezione automatica delle VM utilizza le istanze di computing man mano che sono disponibili. Di conseguenza, non puoi specificare che il servizio utilizzi le istanze da una prenotazione specifica.

Problemi noti

Quando utilizzi la selezione automatica delle VM, tieni presente i seguenti problemi noti:

Parallelismo imprevisto

Se osservi un utilizzo della CPU basso o un parallelismo imprevisto sulle VM worker quando utilizzi la selezione automatica delle VM con l'adeguamento, potrebbe essere dovuto a un problema noto per cui il numero di thread per worker non viene impostato automaticamente in modo che corrisponda al numero di vCPU del tipo di macchina selezionato.

Per risolvere questo problema, puoi impostare esplicitamente il numero di thread del framework worker utilizzando l'numberOfWorkerHarnessThreads opzione della pipeline. Questa opzione si applica a livello globale a tutti i pool di worker nella pipeline.