Seleção automática de VM

Ao fixar um job em um tipo de máquina específico usando a opção de pipeline workerMachineType, você corre o risco de sofrer atrasos ou falhas no job devido à falta de recursos. A seleção automática de VMs resolve esse problema escolhendo automaticamente workers de um pool de tipos de máquinas compatíveis e disponíveis usando a flexibilidade de instâncias do Compute Engine . Isso ajuda a garantir que os pipelines do Dataflow adquiram capacidade de maneira confiável, ajudando você a manter a performance consistente e evitar interrupções.

Configurações incompatíveis

A seleção automática de VMs será desativada se o pipeline estiver configurado com qualquer um destes itens:

  • O Dataflow Prime está ativado.
  • A opção de pipeline min_cpu_platform está definida.
  • Discos Hyperdisk Balanced ou desempenho provisionado personalizado (IOPS e capacidade de processamento) são usados. Os jobs iniciados com essas configurações vão falhar.
  • A VM confidencial está ativada.
  • Aceleradores (GPUs ou TPUs) são necessários.

Além disso, a seleção automática de VMs não é compatível com jobs que usam o dispositivo de embaralhamento ou o dispositivo de streaming.

Ativar a seleção automática de VMs

A seleção automática de VMs é ativada automaticamente em qualquer um destes cenários:

  • Se você definir min_ram ou cpu_count dicas de recursos para etapas de pipeline que não exigem aceleradores (GPUs ou TPUs). Para informações sobre como usar dicas de recursos com jobs baseados em modelo, consulte Dicas de recursos de pipeline.

Comportamento da seleção automática de VMs

Configure dicas de recursos min_ram e cpu_count isoladamente ou em combinação. Exemplo:

  1. Um job com apenas cpu_count=2 pode provisionar instâncias com n4-standard-2 (2 vCPUs, 8 GB de RAM), c4-standard-2 (2 vCPUs, 7 GB de RAM) e outros tipos de máquinas.
  2. Um job com cpu_count=4 e min_ram=16GB pode provisionar instâncias com n4-standard-4 (4 vCPUs, 16 GB de RAM), c4-highmem-4 (4 vCPUs, 31 GB de RAM) e outros tipos de máquinas.

A seleção automática de VMs otimiza a seleção de VMs para a obtenção de recursos. Isso significa que você pode ter uma performance reduzida ao usar a seleção automática de VMs para melhorar a capacidade de obtenção de alguns dos seus jobs altamente ajustados. Recomendamos que você teste a seleção automática de VMs em um subconjunto dos seus jobs atuais antes de implantá-los gradualmente de forma mais ampla. Para mais informações sobre a capacidade de obtenção, consulte Melhorar a capacidade de obtenção de recursos para jobs na documentação do Batch.

O Dataflow tenta usar famílias de máquinas de quarta geração primeiro (por exemplo, N4 ou C4) para oferecer melhor eficiência. Se as máquinas de quarta geração não estiverem disponíveis na sua região, não tiverem cota suficiente ou forem incompatíveis com suas configurações, o Dataflow vai usar automaticamente famílias de máquinas de segunda geração amplamente disponíveis (por exemplo, N2 ou E2) para garantir que o job possa ser iniciado sem atrasos de capacidade.

Se você especificar um tipo de disco, como pd-ssd ou pd-standard, ao ativar a seleção automática de VMs usando dicas de recursos (ajuste direito), o Dataflow vai provisionar apenas famílias de máquinas de segunda geração compatíveis. Para garantir a máxima compatibilidade e permitir o uso de gerações de máquinas mais recentes, não atribua um tipo de disco.

Reservas do Compute Engine

Se você usar reservas do Compute Engine com a seleção automática de VMs, observe o seguinte:

  • Se você tiver reservas configuradas para serem consumidas automaticamente, elas poderão ser usadas se a seleção automática de VMs provisionar tipos de máquinas que correspondam à reserva.
  • A seleção automática de VMs consome instâncias de computação à medida que elas ficam disponíveis. Consequentemente, não é possível especificar que o serviço consuma instâncias de uma reserva específica.

Problemas conhecidos

Ao usar a seleção automática de VMs, esteja ciente destes problemas conhecidos:

Paralelismo inesperado

Se você observar baixa utilização da CPU ou paralelismo inesperado em VMs de worker ao usar a seleção automática de VMs com ajuste direito, isso pode ser devido a um problema conhecido em que o número de linhas de execução por worker não é definido automaticamente para corresponder à contagem de vCPUs do tipo de máquina selecionado.

Para contornar esse problema, você pode definir explicitamente o número de linhas de execução do harness de worker usando a numberOfWorkerHarnessThreads opção de pipeline. Essa opção se aplica globalmente a todos os pools de workers no pipeline.