La personalizzazione delle VM worker consente di personalizzare le risorse di calcolo e archiviazione in base ai requisiti di memoria ed elaborazione della pipeline. Ciò è utile per ottimizzare le prestazioni dei job e gestire i costi dell'infrastruttura per i carichi di lavoro che richiedono molte risorse.
Per impostazione predefinita, Dataflow seleziona il tipo di macchina per le VM worker che eseguono il job, insieme alle dimensioni e al tipo di Persistent Disk. Per personalizzare queste risorse, imposta le seguenti opzioni della pipeline quando crei il job.
Tipo di macchina
Il tipo di macchina di Compute Engine che Dataflow utilizza all'avvio delle VM worker. Puoi utilizzare tipi di macchine x86 o Arm, inclusi i tipi di macchine personalizzate.
Java
Imposta l'opzione della pipeline workerMachineType.
Python
Imposta l'opzione della pipeline machine_type.
Vai
Imposta l'opzione della pipeline worker_machine_type.
Per Arm, sono supportate le serie di macchine Tau T2A e C4A. Per saperne di più sull'utilizzo delle VM Arm, consulta Utilizzare le VM Arm in Dataflow.
Le VM x86 sono supportate automaticamente.
I tipi di macchine shared-core (ad esempio
f1-micro,g1-small,e2-micro,e2-smallee2-medium) non sono consigliati per i job Dataflow e non sono supportati ai sensi dell'accordo sul livello del servizio Dataflow.La fatturazione è indipendente dalla famiglia di tipo di macchina. Per saperne di più, consulta la sezione Prezzi di Dataflow.
Per i tipi di macchina
f1-microeg1-small, la fatturazione di Dataflow avviene come se avessero 1 vCPU, mentre per i tipi di macchinae2-micro,e2-smallee2-medium, la fatturazione di Dataflow avviene come se avessero 2 vCPU. Queste tariffe vengono fatturate anche se i tipi di macchine con core condivisi forniscono meno vCPU fatturate di tempo di CPU sostenuto.
Tipi di macchine personalizzate
Per specificare un tipo di macchina personalizzata, utilizza il seguente formato:
FAMILY-vCPU-MEMORY. Sostituisci quanto segue:
- FAMILY. Utilizza uno dei seguenti valori:
Serie di macchine Valore N1 customN2 n2-customN2D n2d-customE2 e2-custom - vCPU. Il numero di vCPU.
- MEMORY. La memoria, in MB.
Per attivare la memoria estesa, aggiungi -ext al tipo di macchina. Esempi: n2-custom-6-3072,
n2-custom-2-32768-ext.
Per ulteriori informazioni sui tipi di macchine personalizzate validi, consulta Tipi di macchine personalizzate nella documentazione di Compute Engine.
Tipi di macchine non supportati per Hyperdisk Balanced
Quando utilizzi i dischi Hyperdisk bilanciato, il job potrebbe non riuscire e restituire un errore simile al seguente:
hyperdisk-balanced disk type cannot be used by MACHINE_TYPE machine type
Ciò si verifica se selezioni un tipo di macchina incompatibile con Hyperdisk Balanced. Questo errore può verificarsi anche quando non viene specificato alcun tipo di macchina o quando utilizzi autoVM. Per un elenco dei tipi di macchine compatibili con Hyperdisk bilanciato, consulta Informazioni su Hyperdisk bilanciato.
Tipo di disco
Il tipo di Persistent Disk da utilizzare.
Non specificare un Persistent Disk quando utilizzi Streaming Engine o il tipo di macchina N4.
Java
Imposta l'opzione della pipeline workerDiskType.
Python
Imposta l'opzione della pipeline worker_disk_type.
Vai
Imposta l'opzione della pipeline disk_type.
Per specificare il tipo di disco, utilizza il seguente formato:
compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE.
Sostituisci quanto segue:
- PROJECT_ID: il tuo ID progetto
- ZONE: la zona del Persistent Disk, ad esempio
us-central1-b - DISK_TYPE: il tipo di disco, ad esempio
pd-ssd,pd-standardohyperdisk-balanced
Per saperne di più, consulta la pagina di riferimento dell'API Compute Engine per diskTypes.
Esegui il provisioning di IOPS e throughput
Quando utilizzi i dischi Hyperdisk bilanciato, puoi eseguire il provisioning di IOPS e throughput indipendentemente dalle dimensioni del disco. Per eseguire il provisioning di IOPS e throughput, utilizza le seguenti opzioni della pipeline:
Java
- Per eseguire il provisioning delle IOPS, imposta l'opzione della pipeline
diskProvisionedIOPS. - Per eseguire il provisioning del throughput in MiB/s, imposta l'opzione della pipeline
diskProvisionedThroughput.
Python
- Per eseguire il provisioning delle IOPS, imposta l'opzione della pipeline
disk_provisioned_iops. - Per eseguire il provisioning del throughput in MiB/s, imposta l'opzione della pipeline
disk_provisioned_throughput_mibps.
Vai
- Per eseguire il provisioning delle IOPS, imposta l'opzione della pipeline
disk_provisioned_iops. - Per eseguire il provisioning del throughput in MiB/s, imposta l'opzione della pipeline
disk_provisioned_throughput_mibps.
Se non imposti queste opzioni, i job che utilizzano dischi hyperdisk-balanced vengono impostati per impostazione predefinita sulle prestazioni di base di 3000 IOPS e 140 MiB/s di throughput. Per saperne di più, consulta la sezione
Informazioni su Hyperdisk bilanciato
nella documentazione di Compute Engine.
Limitazioni
- Il provisioning di IOPS e throughput per Hyperdisk Balanced è supportato nelle versioni 2.74.0 o successive dell'SDK Apache Beam.
Dimensione disco
Le dimensioni del Persistent Disk.
Java
Imposta l'opzione della pipeline diskSizeGb.
Python
Imposta l'opzione della pipeline disk_size_gb.
Vai
Imposta l'opzione della pipeline disk_size_gb.
Se imposti questa opzione, specifica almeno 30 GB per tenere conto dell'immagine di avvio del worker e dei log locali.
La riduzione delle dimensioni del disco riduce l'I/O di rimescolamento disponibile. I job con shuffling vincolato che non utilizzano Dataflow Shuffle o Streaming Engine potrebbero comportare un aumento del runtime e del costo del job.
Job batch
Per i job batch che utilizzano Dataflow Shuffle, questa opzione imposta le dimensioni di un disco di avvio della VM worker. Per i job batch che non utilizzano Dataflow Shuffle, questa opzione imposta le dimensioni dei dischi utilizzati per archiviare i dati sottoposti a shuffle; le dimensioni del disco di avvio non sono interessate.
Se un job batch utilizza Dataflow Shuffle, le dimensioni predefinite del disco sono pari a 25 GB. In caso contrario, il valore predefinito è 250 GB.
Job di streaming
Per i job di streaming che utilizzano Streaming Engine, questa opzione imposta le dimensioni dei dischi di avvio. Per i job di streaming che non utilizzano Streaming Engine, questa opzione imposta le dimensioni di ogni Persistent Disk aggiuntivo creato dal servizio Dataflow; il disco di avvio non è interessato.
Se un job di streaming non utilizza Streaming Engine, puoi impostare le dimensioni del disco di avvio
con il flag sperimentale streaming_boot_disk_size_gb. Ad esempio, specifica
--experiments=streaming_boot_disk_size_gb=80 per creare dischi di avvio da 80 GB.
Se un job di streaming utilizza Streaming Engine, le dimensioni predefinite del disco sono 30 GB. In caso contrario, il valore predefinito è 400 GB.
Piattaforma CPU minima
Se hai workload sensibili alle prestazioni che dipendono da funzionalità specifiche della CPU, puoi specificare una piattaforma CPU minima per le VM worker. Questa opzione garantisce che i worker Dataflow utilizzino un processore che soddisfi o superi la generazione di CPU specificata.
Per specificare la piattaforma CPU minima, imposta l'min_cpu_platform
opzione della pipeline sperimentale.
Il valore deve essere il nome esatto della piattaforma CPU selezionata, ad esempio
AMD Milan o Intel Ice Lake. Ad esempio, specifica
--experiments=min_cpu_platform='AMD Milan' per impostare la piattaforma CPU minima su
AMD Milan. Per un elenco delle piattaforme CPU minime supportate, consulta
Disponibilità delle piattaforme CPU.
Per informazioni sulle limitazioni, vedi
Limitazioni quando si specifica una piattaforma CPU minima.
Per verificare che le VM worker Dataflow vengano create con la piattaforma CPU minima specificata, controlla le voci di Cloud Logging per il job nel seguente modo:
- Vai alla console Cloud Logging nella console Google Cloud .
Utilizza il seguente filtro e sostituisci la piattaforma CPU di esempio e l'ID job Dataflow con le informazioni relative al tuo job.
resource.type="gce_instance" protoPayload.request.minCpuPlatform="AMD Milan" "dataflow_job_id"Esamina i log risultanti per verificare che Dataflow abbia specificato correttamente la piattaforma CPU minima durante il processo di creazione della VM.
Utilizza Cloud Storage FUSE per montare i bucket Cloud Storage sulle VM Dataflow
Cloud Storage FUSE consente di montare i bucket Cloud Storage direttamente con le VM Dataflow, consentendo al software di accedere ai file come se fossero locali. Questa integrazione elimina la necessità di pre-scaricare i dati, semplificando l'accesso ai dati per i tuoi workload. Per saperne di più, consulta Elaborare dati di ML utilizzando Dataflow e Cloud Storage FUSE.