Ce document explique comment configurer les VM de nœud de calcul pour une tâche Dataflow.
Par défaut, Dataflow sélectionne le type de machine pour les VM de nœud de calcul qui exécutent votre tâche, ainsi que la taille et le type de disque persistant. Pour configurer les VM de nœud de calcul, définissez les options de pipeline suivantes lorsque vous créez la tâche.
Type de machine
Type de machine Compute Engine utilisé par Dataflow lors du démarrage des VM de nœud de calcul. Vous pouvez utiliser des types de machines x86 ou Arm, y compris des types de machines personnalisés.
Java
Définissez l'option de pipeline workerMachineType.
Python
Définissez l'option de pipeline machine_type.
Go
Définissez l'option de pipeline worker_machine_type.
Pour Arm, les séries de machines Tau T2A et C4A sont compatibles. Pour en savoir plus sur l'utilisation des VM Arm, consultez la section Utiliser des VM Arm dans Dataflow.
Les VM x86 sont automatiquement compatibles.
Les types de machines à cœur partagé (par exemple,
f1-micro,g1-small,e2-micro,e2-smallete2-medium) ne sont pas recommandés pour les tâches Dataflow et ne sont pas pris en charge dans le cadre du contrat de niveau de service de Dataflow.La facturation ne dépend pas de la famille du type de machine. Pour en savoir plus, consultez la page Tarifs de Dataflow.
Pour les types de machines
f1-microetg1-small, Dataflow facture comme s'ils disposaient d'un processeur virtuel. Pour les types de machinese2-micro,e2-smallete2-medium, Dataflow facture comme s'ils disposaient de deux processeurs virtuels. Ces tarifs sont facturés même si les types de machines à cœur partagé fournissent moins de temps CPU soutenu que les processeurs virtuels facturés.
Types de machines personnalisés
Pour spécifier un type de machine personnalisé, utilisez le format suivant :
FAMILY-vCPU-MEMORY. Remplacez les éléments suivants :
- FAMILY. Utilisez l'une des valeurs suivantes :
Série de machines Valeur N1 customN2 n2-customN2D n2d-customE2 e2-custom - vCPU. Nombre de processeurs virtuels.
- MEMORY. Quantité de mémoire, exprimée en Mo.
Pour activer
l'extension de mémoire,
ajoutez -ext au type de machine. Exemples : n2-custom-6-3072, n2-custom-2-32768-ext.
Pour en savoir plus sur les types de machines personnalisés valides, consultez la section Types de machines personnalisés dans la documentation Compute Engine.
Type de disque
Type de disque persistant à utiliser.
Ne spécifiez pas de disque persistant lorsque vous utilisez Streaming Engine ou le type de machine N4.
Java
Définissez l'option de pipeline workerDiskType.
Python
Définissez l'option de pipeline worker_disk_type.
Go
Définissez l'option de pipeline disk_type.
Pour spécifier le type de disque, utilisez le format suivant :
compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE.
Remplacez les éléments suivants :
- PROJECT_ID : ID de votre projet
- ZONE : zone du disque persistant, par exemple
us-central1-b - DISK_TYPE : type de disque, par exemple
pd-ssd,pd-standardouhyperdisk-balanced
Pour plus d'informations, consultez la documentation de référence de l'API Compute Engine pour diskTypes.
Provisionner les IOPS et le débit
Lorsque vous utilisez des disques Hyperdisk Balanced, vous pouvez provisionner les IOPS et le débit indépendamment de la taille du disque. Pour provisionner les IOPS et le débit, utilisez les options de pipeline suivantes :
Java
- Pour provisionner les IOPS, définissez l'option de pipeline
diskProvisionedIOPS. - Pour provisionner le débit en Mio/s, définissez l'option de pipeline
diskProvisionedThroughput.
Python
- Pour provisionner les IOPS, définissez l'option de pipeline
disk_provisioned_iops. - Pour provisionner le débit en Mio/s, définissez l'option de pipeline
disk_provisioned_throughput_mibps.
Go
- Pour provisionner les IOPS, définissez l'option de pipeline
disk_provisioned_iops. - Pour provisionner le débit en Mio/s, définissez l'option de pipeline
disk_provisioned_throughput_mibps.
Si vous ne définissez pas ces options, les tâches qui utilisent des disques hyperdisk-balanced sont définies par défaut sur les performances de base de 3 000 IOPS et 140 Mio/s de débit. Pour en savoir plus, consultez la section
À propos d'Hyperdisk Balanced
dans la documentation Compute Engine.
Limites
- Le provisionnement des IOPS et du débit pour Hyperdisk Balanced est compatible avec les versions 2.74.0 ou ultérieures du SDK Apache Beam.
Taille du disque
Taille du disque persistant.
Java
Définissez l'option de pipeline diskSizeGb.
Python
Définissez l'option de pipeline disk_size_gb.
Go
Définissez l'option de pipeline disk_size_gb.
Si vous définissez cette option, spécifiez au moins 30 Go pour tenir compte de l'image de démarrage du nœud de calcul et des journaux locaux.
La réduction de la taille du disque réduit les E/S disponibles pour le brassage de données. Les tâches de brassage de données qui n'utilisent ni Dataflow Shuffle, ni Streaming Engine peuvent entraîner une augmentation du temps d'exécution et du coût des tâches.
Jobs par lots
Pour les tâches par lots utilisant Dataflow Shuffle, cette option définit la taille du disque de démarrage d'une VM de nœud de calcul. Pour les tâches par lots qui n'utilisent pas Dataflow Shuffle, cette option définit la taille des disques utilisés pour stocker les données brassées. La taille du disque de démarrage n'est pas affectée.
Si un job par lot utilise Dataflow Shuffle, la taille de disque par défaut est de 25 Go. Sinon, la valeur par défaut est de 250 Go.
Tâches traitées par flux
Pour les tâches traitées par flux à l'aide de Streaming Engine, cette option définit la taille des disques de démarrage. Pour les tâches traitées par flux qui n'utilisent pas Streaming Engine, cette option définit la taille de chaque disque persistant supplémentaire créé par le service Dataflow. Le disque de démarrage n'est pas affecté.
Vous pouvez définir la taille du disque de démarrage avec l'option de test streaming_boot_disk_size_gb pour les tâches traitées par flux qui n'utilisent pas Streaming Engine. Par exemple, spécifiez --experiments=streaming_boot_disk_size_gb=80 pour créer des disques de démarrage de 80 Go.
Si une tâche traitée par flux utilise Streaming Engine, la taille de disque par défaut est de 30 Go. Sinon, la valeur par défaut est de 400 Go.
Configuration minimale de la plate-forme du CPU
Si vous avez des charges de travail sensibles aux performances qui dépendent de fonctionnalités spécifiques du processeur, vous pouvez spécifier une configuration minimale de la plate-forme du processeur pour les VM de nœud de calcul. Cette option garantit que les nœuds de calcul Dataflow utilisent un processeur qui répond à la génération de processeur spécifiée ou la dépasse.
Pour spécifier la configuration minimale de la plate-forme du processeur, définissez l'option de pipeline expérimentale min_cpu_platform
.
La valeur doit correspondre au nom exact de la plate-forme de processeur sélectionnée, par exemple AMD Milan ou Intel Ice Lake. Par exemple, spécifiez
--experiments=min_cpu_platform='AMD Milan' pour définir la configuration minimale de la plate-forme du processeur sur
AMD Milan. Pour obtenir la liste des configurations minimales de la plate-forme du processeur compatibles, consultez la section
Disponibilité des plates-formes de processeur.
Pour en savoir plus sur les limites, consultez la section
Limites lors de la spécification d'une configuration minimale de la plate-forme du processeur.
Pour vérifier que les VM de nœud de calcul Dataflow sont créées avec la configuration minimale de la plate-forme du processeur spécifiée, consultez les entrées Cloud Logging de la tâche comme suit :
- Accédez à la console Cloud Logging dans la Google Cloud console.
Utilisez le filtre suivant et remplacez l'exemple de plate-forme de processeur et l'ID de tâche Dataflow par les informations de votre tâche.
resource.type="gce_instance" protoPayload.request.minCpuPlatform="AMD Milan" "dataflow_job_id"Consultez les journaux obtenus pour vérifier que Dataflow a bien spécifié la configuration minimale de la plate-forme du processeur lors du processus de création de la VM.
Utiliser Cloud Storage FUSE pour installer vos buckets Cloud Storage sur des VM Dataflow
Cloud Storage FUSE vous permet d'installer vos buckets Cloud Storage directement avec des VM Dataflow, ce qui permet aux logiciels d'accéder aux fichiers comme s'ils étaient locaux. Cette intégration élimine le besoin de pré-télécharger des données, ce qui simplifie l'accès aux données pour vos charges de travail. Pour en savoir plus, consultez la section Traiter des données de ML à l'aide de Dataflow et de Cloud Storage FUSE.