Configurer les VM de nœuds de calcul Dataflow

La personnalisation des VM de nœud de calcul vous permet d'adapter les ressources de calcul et de stockage aux exigences de mémoire et de traitement de votre pipeline. Cela vous aide à optimiser les performances des jobs et à gérer les coûts d'infrastructure pour les charges de travail gourmandes en ressources.

Par défaut, Dataflow sélectionne le type de machine pour les VM de nœud de calcul qui exécutent votre job, ainsi que la taille et le type de disque persistant. Pour personnaliser ces ressources, définissez les options de pipeline suivantes lorsque vous créez le job.

Type de machine

Type de machine Compute Engine utilisé par Dataflow lors du démarrage des VM de nœuds 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, C4A et N4A sont compatibles. Pour en savoir plus sur l'utilisation des VM basées sur l'architecture ARM, consultez Utiliser des VM basées sur l'architecture 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-small et e2-medium) ne sont pas recommandés pour les jobs 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-micro et g1-small, Dataflow facture comme s'ils disposaient d'un vCPU, et pour les types de machines e2-micro, e2-small et e2-medium, Dataflow facture comme s'ils disposaient de deux vCPU. 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 machinesValeur
    N1custom
    N2n2-custom
    N2Dn2d-custom
    E2e2-custom
  • vCPU : nombre de vCPU.
  • 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 Types de machines personnalisés dans la documentation Compute Engine.

Types de machines non compatibles avec Hyperdisk Balanced

Lorsque vous utilisez des disques Hyperdisk Balanced, votre job peut échouer avec une erreur semblable à celle-ci :

hyperdisk-balanced disk type cannot be used by MACHINE_TYPE machine type

Cela se produit si vous sélectionnez un type de machine incompatible avec Hyperdisk Balanced. Cette erreur peut également se produire lorsqu'aucun type de machine n'est spécifié ou lorsque vous utilisez autoVM. Pour obtenir la liste des types de machines compatibles avec Hyperdisk Balanced, consultez À propos d'Hyperdisk Balanced.

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 du projet.
  • ZONE : zone du disque persistant, par exemple us-central1-b.
  • DISK_TYPE : type de disque, par exemple pd-ssd, pd-standard ou hyperdisk-balanced.

Pour en savoir plus, 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 des 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 des 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 des 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 jobs qui utilisent des disques hyperdisk-balanced utilisent par défaut les performances de référence de 3 000 IOPS et un débit de 140 Mio/s. Pour en savoir plus, consultez À 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 de brassage disponibles. Les jobs liés à Shuffle qui n'utilisent pas Dataflow Shuffle ou Streaming Engine peuvent entraîner une augmentation de la durée d'exécution et du coût du job.

Jobs par lots

Pour les jobs par lot utilisant Dataflow Shuffle, cette option définit la taille du disque de démarrage d'une VM de nœud de calcul. Pour les jobs par lot 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 jobs de traitement de flux utilisant Streaming Engine, cette option définit la taille des disques de démarrage. Pour les jobs de traitement de 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é.

Si un job de streaming n'utilise pas Streaming Engine, vous pouvez définir la taille du disque de démarrage avec le flag de test streaming_boot_disk_size_gb. Par exemple, spécifiez --experiments=streaming_boot_disk_size_gb=80 pour créer des disques de démarrage de 80 Go.

Si un job de streaming 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 de processeur spécifiques, vous pouvez spécifier une plate-forme de processeur minimale pour les VM de nœud de calcul. Cette option garantit que les nœuds de calcul Dataflow utilisent un processeur qui respecte ou dépasse la génération de processeur spécifiée.

Pour spécifier la plate-forme de processeur minimale, 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 plate-forme CPU minimale sur AMD Milan. Pour obtenir la liste des plates-formes de processeur minimales compatibles, consultez Disponibilité des plates-formes de processeur. Pour en savoir plus sur les limites, consultez Limites lors de la spécification d'une plate-forme de processeur minimale.

Pour vérifier que les VM de nœud de calcul Dataflow sont créées avec la plate-forme CPU minimale spécifiée, vérifiez les entrées de journal Cloud Logging du job comme suit :

  1. Accédez à la console Cloud Logging dans la console Google Cloud .
  2. Utilisez le filtre suivant et remplacez l'exemple de plate-forme de processeur et d'ID de job Dataflow par les informations de votre job.

    resource.type="gce_instance"
    protoPayload.request.minCpuPlatform="AMD Milan"
    "dataflow_job_id"
    
  3. Examinez les journaux obtenus pour confirmer que Dataflow a bien spécifié la plate-forme de processeur minimale 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 la nécessité de télécharger les données au préalable, ce qui simplifie l'accès aux données pour vos charges de travail. Pour en savoir plus, consultez Traiter des données de ML à l'aide de Dataflow et de Cloud Storage FUSE.

Étapes suivantes