Lorsque vous épinglez un job à un type de machine spécifique à l'aide de l'option de pipeline workerMachineType, vous risquez de subir des retards ou des échecs de job en raison de ruptures de stock de ressources. La sélection automatique de VM résout ce problème en choisissant automatiquement des nœuds de calcul à partir d'un pool de types de machines compatibles et disponibles à l'aide de la flexibilité des instances Compute Engine . Cela permet de s'assurer que vos pipelines Dataflow acquièrent de la capacité de manière fiable, ce qui vous aide à maintenir des performances cohérentes et à éviter les interruptions.
Configurations non compatibles
La sélection automatique de VM est désactivée si votre pipeline est configuré avec l'un des éléments suivants :
- Dataflow Prime est activé.
- L'option de pipeline
min_cpu_platformest définie. - Des disques Hyperdisk Balanced ou des performances provisionnées personnalisées (IOPS et débit) sont utilisés. Les jobs démarrés avec ces configurations échoueront.
- Confidential VM est activé.
- Des accélérateurs (GPU ou TPU) sont requis.
De plus, la sélection automatique de VM n'est pas compatible avec les jobs utilisant Shuffle Appliance ou Streaming Appliance.
Activer la sélection automatique de VM
La sélection automatique de VM est activée automatiquement dans l'un des cas suivants :
- Si vous définissez
min_ramoucpu_countoptimisations de ressources pour les étapes de pipeline qui ne nécessitent pas d'accélérateurs (GPU ou TPU). Pour savoir comment utiliser les optimisations de ressources avec des jobs basés sur des modèles, consultez Optimisations de ressources de pipeline.
Comportement de la sélection automatique de VM
Configurez les optimisations de ressources min_ram et cpu_count de manière isolée ou combinée. Exemple :
- Un job avec uniquement
cpu_count=2peut provisionner des instances avecn4-standard-2(2 vCPU, 8 Go de RAM),c4-standard-2(2 vCPU, 7 Go de RAM) et d'autres types de machines. - Un job avec
cpu_count=4etmin_ram=16GBpeut provisionner des instances avecn4-standard-4(4 vCPU, 16 Go de RAM),c4-highmem-4(4 vCPU, 31 Go de RAM) et d'autres types de machines.
La sélection automatique de VM optimise la sélection de VM pour l'obtention de ressources. Cela signifie que vous pouvez constater une baisse des performances lorsque vous utilisez la sélection automatique de VM pour améliorer l'obtention de certains de vos jobs hautement optimisés. Nous vous recommandons de tester la sélection automatique de VM sur un sous-ensemble de vos jobs existants avant de la déployer progressivement à plus grande échelle. Pour en savoir plus sur l'obtention, consultez Améliorer l'obtention de ressources pour les jobs dans la documentation Batch.
Dataflow tente d'abord d'utiliser des familles de machines de 4e génération (par exemple, N4 ou C4) pour offrir une meilleure efficacité. Si les machines de 4e génération ne sont pas disponibles dans votre région, si votre quota est insuffisant ou si elles ne sont pas compatibles avec vos configurations, Dataflow revient automatiquement aux familles de machines de 2e génération largement disponibles (par exemple, N2 ou E2) pour s'assurer que votre job peut démarrer sans délai de capacité.
Si vous spécifiez un type de disque tel que pd-ssd ou pd-standard lorsque vous activez la sélection automatique de VM à l'aide d'optimisations de ressources (adaptation des ressources), Dataflow ne provisionne que les familles de machines de 2e génération compatibles. Pour garantir une compatibilité maximale et permettre l'utilisation de générations de machines plus récentes, n'attribuez pas de type de disque.
Réservations Compute Engine
Si vous utilisez des réservations Compute Engine avec la sélection automatique de VM, tenez compte des points suivants :
- Si vous avez configuré des réservations pour qu'elles soient utilisées automatiquement, elles peuvent être utilisées si la sélection automatique de VM provisionne des types de machines correspondant à la réservation.
- La sélection automatique de VM utilise les instances de calcul dès qu'elles sont disponibles. Par conséquent, vous ne pouvez pas spécifier que le service utilise des instances d'une réservation spécifique.
Problèmes connus
Lorsque vous utilisez la sélection automatique de VM, tenez compte des problèmes connus suivants :
Parallélisme inattendu
Si vous constatez une faible utilisation du processeur ou un parallélisme inattendu sur les VM de nœud de calcul lorsque vous utilisez la sélection automatique de VM avec l'adaptation des ressources, cela peut être dû à un problème connu où le nombre de threads par nœud de calcul n'est pas automatiquement défini pour correspondre au nombre de vCPU du type de machine sélectionné.
Pour contourner ce problème, vous pouvez définir explicitement le nombre de threads de l'harness de nœud de calcul à l'aide de l'option numberOfWorkerHarnessThreads de pipeline. Cette option s'applique globalement à tous les pools de nœuds de calcul du pipeline.