Cotas e limites

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

O Google Cloud usa cotas para garantir a imparcialidade e reduzir picos no uso e na disponibilidade de recursos. Uma cota restringe quanto de um recurso do Google Cloud o projeto do Google Cloud pode usar. As cotas se aplicam a vários tipos de recursos, incluindo hardware, software e componentes de rede. Por exemplo, as cotas podem restringir o número de chamadas de API para um serviço, o número de balanceadores de carga usados simultaneamente pelo projeto ou o número de projetos que podem ser criados. As cotas protegem a comunidade de usuários do Google Cloud, impedindo a sobrecarga de serviços. As cotas também ajudam você a gerenciar seus próprios recursos do Google Cloud.

O sistema de cotas do Cloud faz o seguinte:

  • Monitora o consumo de produtos e serviços do Google Cloud.
  • Restringe o consumo desses recursos.
  • Fornece um meio de solicitar mudanças no valor da cota

Na maioria dos casos, quando você tenta consumir mais de um recurso do que a cota permite, o sistema bloqueia o acesso ao recurso e a tarefa que você está tentando executar falha.

As cotas geralmente se aplicam ao projeto do nível Google Cloud. O uso de um recurso em um projeto não afeta a cota disponível em outro. Em um projeto do Google Cloud, as cotas são compartilhadas entre todos os aplicativos e endereços IP.

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 10 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: nas regiões a seguir, os tipos de máquina padrão do Dataflow são n1-standard-1 para lote, n1-standard-2 para jobs que usam o Streaming Engine, n1-standard-4 para jobs de streaming que não usam o Streaming Engine e n1-standard-2 para jobs que usam o agendamento flexível de recursos (FlexRS). O FlexRS usa 90% de VMs preemptivas e 10% de VMs comuns.
    • asia-east1
    • asia-east2
    • asia-northeast1
    • asia-northeast2
    • asia-northeast3
    • asia-south1
    • asia-south2
    • asia-southeast1
    • asia-southeast2
    • australia-southeast1
    • australia-southeast2
    • europe-central2
    • europe-north1
    • europe-west1
    • europe-west2
    • europe-west3
    • europe-west4
    • europe-west5
    • europe-west6
    • northamerica-northeast1
    • northamerica-northeast2
    • southamerica-east1
    • us-central1
    • us-central2
    • us-east1
    • us-east4
    • us-west1
    • us-west2
    • us-west3
    • us-west4

    Para outras regiões, os tipos de máquina padrão são e2-standard-2 para lote, e2-standard-2 para jobs que usam o Streaming Engine, e2-standard-4 para jobs de streaming que não usam o Streaming Engine e e2-standard-2 para jobs que usam o FlexRS.

    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. Para um mapeamento de tipos de máquina em relação ao número de CPUs, consulte Tipos de máquina do Compute Engine.

  • 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
  • Se os grupos de instâncias gerenciadas estiverem ausentes de um job de streaming por mais de sete dias, o job será cancelado.
  • Se os grupos de instâncias gerenciadas estiverem ausentes de um job em lote por mais de uma hora, o job será cancelado.

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. 2.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
Tamanho máximo da chave em pipelines em lote. 1,5 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 para um valor de elemento único. 80 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