Cotas e limites

Confira neste documento as cotas e os limites que se aplicam ao Dataflow.

Uma cota restringe quanto de um determinado recurso compartilhado do Google Cloud o projeto do Google Cloud pode usar, incluindo componentes de hardware, software e rede. Dessa forma, as cotas fazem parte de um sistema que:

  • monitora o uso ou o consumo de produtos e serviços do Google Cloud;
  • restringe o consumo desses recursos por motivos, que garantem imparcialidade e reduzem picos de uso;
  • mantém as configurações que aplicam automaticamente restrições prescritas;
  • fornece um meio de solicitar ou faz alterações na cota.

Na maioria dos casos, quando uma cota é excedida, o sistema bloqueia imediatamente o acesso ao recurso relevante do Google. Além disso, a tarefa que você está tentando executar falha. Na maioria dos casos, as cotas se aplicam a todos os projetos do Google Cloud. Além disso, elas são compartilhadas entre todos os aplicativos e endereços IP que usam esse projeto.

Para aumentar ou diminuir a maioria das cotas, use o console do Google Cloud. Para mais informações, consulte Solicitar uma cota maior.

Também há limites para os recursos de Dataflow. Esses limites não estão relacionados ao sistema de cotas. Não é possível mudar os limites, a menos que seja indicado o contrário.

O serviço gerenciado do Dataflow tem as seguintes cotas e limites:

  • Cada projeto do Google Cloud pode fazer até 3.000.000 de solicitações por minuto.
  • Cada job do Dataflow pode usar no máximo 2.000 instâncias do Compute Engine. Sem especificar uma zona de worker, cada job de streaming usando o Streaming Engine ou um job em lote usando o Dataflow Shuffle baseado em serviço pode usar no máximo 4.000 instâncias do Compute Engine.
  • Cada projeto do Google Cloud pode executar no máximo 25 jobs simultâneos do Dataflow por padrão.
  • Cada worker do Dataflow tem um limite máximo de registros que ele pode gerar em um intervalo de tempo. Consulte a documentação de geração de registros para ver o limite exato.
  • Se você adotar as cotas no nível da organização, cada organização pode executar no máximo 125 jobs simultâneos do Dataflow por padrão.
  • Cada usuário pode fazer até 15.000 solicitações de monitoramento por minuto.
  • Cada usuário pode fazer até 60 solicitações de criação de jobs por minuto.
  • Cada usuário pode fazer até 60 solicitações de modelo de job por minuto.
  • Cada usuário pode fazer até 60 solicitações de atualização de job por minuto.
  • Cada projeto do Google Cloud recebe os seguintes slots do Shuffle em cada região:
    • asia-east1: 48 slots
    • asia-northeast1: 24 slots
    • asia-northeast3: 32 slots
    • asia-south1: 64 slots
    • asia-southeast1: 64 slots
    • australia-southeast1: 24 slots
    • europe-west1: 640 slots
    • europe-west2: 32 slots
    • europe-west3: 40 slots
    • europe-west4: 512 slots
    • northamerica-northeast1: 512 slots
    • us-central1: 640 slots
    • us-east1: 640 slots
    • us-east4: 64 slots
    • us-west1: 384 slots
    • us-west2: 24 slots
    • us-west3: 24 slots
    • Outras regiões: 16 slots
    16 slots são suficientes para embaralhar aproximadamente 10 TB de dados simultaneamente.
  • Os jobs em lote do Dataflow serão cancelados após 30 dias.

Cotas do Compute Engine

Quando você executa seu pipeline no serviço do Dataflow, ele cria instâncias do Compute Engine para executar o código do pipeline.

A cota do Compute Engine é especificada por região. Verifique a cota do Compute Engine no seu projeto e solicite os ajustes abaixo, se necessário:

  • CPUs: os tipos de máquina padrão do Dataflow são n1-standard-1 para lote, n1-standard-2 para jobs que usam Streaming Engine e n1-standard-4 para jobs que não usam Streaming Engine. O FlexRS usa máquinas n1-standard-2 por padrão. Durante a versão Beta, o FlexRS usa 90% de VMs preemptivas e 10% de VMs comuns. O Compute Engine calcula o número de CPUs somando a contagem total de CPUs de cada instância. Por exemplo, a execução de 10 instâncias n1-standard-4 conta como 40 CPUs. Consulte Tipos de máquina do Compute Engine para um mapeamento dos tipos de máquinas em relação ao número de CPUs.
  • Endereços IP em uso: o número de endereços IP em uso no projeto precisa ser suficiente para acomodar a quantidade desejada de instâncias. Para usar 10 instâncias do Compute Engine, você precisa de 10 endereços IP em uso.
  • Disco permanente: o Dataflow anexa um disco permanente a cada instância.
    • O tamanho de disco padrão é de 250 GB para lote e 400 GB para pipelines de streaming. Para 10 instâncias, por padrão, você precisa de 2.500 GB de disco permanente para um job em lote.
    • O tamanho de disco padrão é de 25 GB para os pipelines em lote do Dataflow Shuffle.
    • O tamanho de disco padrão é de 30 GB para pipelines de streaming do Streaming Engine.
    • O serviço do Dataflow está limitado atualmente a 15 discos permanentes por instância de worker na execução de um job de streaming. Cada disco permanente é local em relação a uma virtual machine individual do Compute Engine. A proporção de 1:1 entre workers e discos é a cota mínima de recursos.
    • O uso do Compute Engine é baseado no número médio de workers e o uso de discos permanentes é baseado no valor exato de --maxNumWorkers. Os discos permanentes são redistribuídos de modo que cada worker tenha um número igual de discos anexados.
  • Grupos regionais gerenciados de instâncias: o Dataflow implanta as instâncias do Compute Engine como um grupo gerenciado de instâncias regionais. Você precisa verificar se as cotas relacionadas a seguir estão disponíveis:
    • Um grupo de instâncias por job do Dataflow
    • Um modelo de instância por job do Dataflow
    • Um grupo regional gerenciado de instâncias por job do Dataflow

Cotas extras

Dependendo das origens e dos coletores usados, talvez você também precise de cotas extras.

  1. Pub/Sub: se estiver usando o Pub/Sub, talvez você precise de mais cota. Ao planejar a cota, observe que o processamento de uma mensagem do Pub/Sub envolve três operações. Se você usar carimbos de data/hora personalizados, será preciso dobrar o número esperado de operações, já que o Dataflow cria uma inscrição separada para rastreá-los.
  2. BigQuery: se estiver usando a API de streaming para BigQuery, serão aplicados limites de cota e outras restrições.

Encontrar e aumentar cotas

Saiba como verificar o uso atual da cota específica do Dataflow:

  1. No console do Google Cloud, acesse APIs e serviços.
    Acessar APIs e serviços
  2. Para verificar o uso atual da cota de slots do Shuffle, na guia Cotas, encontre a linha Slots do Shuffle na tabela e, na coluna Gráfico de uso, clique em Mostrar gráfico de uso.

Se você quiser aumentar sua cota de jobs, entre em contato com o suporte do Google Cloud. Nós aumentaremos o limite para um valor que melhor atenda às suas necessidades. A cota padrão é de 25 jobs simultâneos do Dataflow para seu projeto ou 125 jobs simultâneos do Dataflow para sua organização.

Além disso, é possível aumentar sua cota de slots do Shuffle para jobs em lote ao enviar uma solicitação de suporte e especificar o tamanho máximo esperado do conjunto de dados simultâneo do Shuffle para todos os jobs no seu projeto. Antes de solicitar mais cota para o Shuffle, execute o pipeline usando o Dataflow Shuffle e verifique o uso real da cota.

Para os jobs de streaming, é possível enviar uma solicitação ao suporte do Google Cloud Platform para aumentar a capacidade do Streaming Engine. Na solicitação, especifique a quantidade máxima de dados que você quer embaralhar entre os workers a cada minuto para cada região em que o job é executado.

O serviço do Dataflow também usa vários componentes do Google Cloud, como BigQuery, Cloud Storage, Pub/Sub e Compute Engine. Esses e outros serviços do Google Cloud usam cotas para determinar o número máximo de recursos que podem ser usados dentro de um projeto. Quando você usar o Dataflow, talvez seja necessário ajustar as configurações de cota para esses serviços.

Dataflow Prime

As cotas e os limites são os mesmos para o Dataflow e o Dataflow Prime. Se você tiver cotas para o Dataflow, não precisará de cota extra para executar jobs usando o Dataflow Prime.

Limites

Nesta seção, você encontra os limites de produção práticos do Dataflow.

Limite Valor
O número máximo de workers por pipeline. 1.000
O tamanho máximo para uma solicitação de criação de job. Os pipelines com muitas etapas e nomes com um nível de detalhe muito altos podem alcançar esse limite. 10 MB
Tamanho máximo de uma solicitação de inicialização de modelo. 1 MB
O número máximo de fragmentos de entrada secundária. 20.000
Tamanho máximo de um único elemento (exceto quando condições mais rigorosas são aplicadas, por exemplo, Streaming Engine) 2 GB
O tamanho máximo do valor de um único elemento no Streaming Engine. 80 MB
Número máximo de Entradas de registro em um determinado período por worker. 15.000 mensagens a cada 30 segundos
Número máximo de métricas personalizadas por projeto. 100
Período em que as recomendações serão armazenadas. 30 dias
Limites do Streaming Engine Valor
Máximo de bytes para mensagens do Pub/Sub. 7 MB
Tamanho máximo de uma chave grande. Chaves com mais de 64 KB reduzem o desempenho. 2 MB
Tamanho máximo de uma entrada secundária. 80 MB
Tamanho máximo das tags de estado usadas por TagValue e TagBag. 64 KB