Quotas e limites

Este documento lista as quotas e os limites do sistema que se aplicam ao Dataflow.

  • As quotas têm valores predefinidos, mas normalmente pode pedir ajustes.
  • Os limites do sistema são valores fixos que não podem ser alterados.

A Google Cloud Platform usa quotas para ajudar a garantir a equidade e reduzir os picos na utilização e disponibilidade de recursos. Uma quota restringe a quantidade de um Google Cloud recurso que o seu Google Cloud projeto pode usar. As quotas aplicam-se a uma variedade de tipos de recursos, incluindo componentes de hardware, software e rede. Por exemplo, as quotas podem restringir o número de chamadas API para um serviço, o número de balanceadores de carga usados em simultâneo pelo seu projeto ou o número de projetos que pode criar. As quotas protegem a comunidade de Google Cloud utilizadores, impedindo a sobrecarga dos serviços. As quotas também ajudam a gerir os seus próprios Google Cloud recursos.

O sistema de quotas da nuvem faz o seguinte:

Na maioria dos casos, quando tenta consumir mais de um recurso do que a respetiva quota permite, o sistema bloqueia o acesso ao recurso e a tarefa que está a tentar realizar falha.

Geralmente, as quotas aplicam-se ao nível do Google Cloud projeto A sua utilização de um recurso num projeto não afeta a sua quota disponível noutro projeto. Num Google Cloud projeto, as quotas são partilhadas por todas as aplicações e endereços IP.

Para mais informações, consulte a vista geral das quotas da nuvem.

Para ajustar a maioria das quotas, use a Google Cloud consola. Para mais informações, consulte o artigo Peça um ajuste da quota.

Também existem limites do sistema nos recursos do Dataflow. Não é possível alterar os limites do sistema.

O serviço gerido do Dataflow tem as seguintes quotas e limites:

  • Cada projeto da Google Cloud Platform pode fazer até 3 000 000 de pedidos por minuto.
  • Cada tarefa do Dataflow pode usar um máximo de 2000 instâncias do Compute Engine. Sem especificar uma zona de trabalho, cada tarefa de streaming que use o Streaming Engine ou tarefa em lote que use o Dataflow baseado em serviços aleatórios pode usar um máximo de 4000 instâncias do Compute Engine.
  • Por predefinição, cada projeto da Google Cloud Platform pode executar, no máximo, 25 tarefas do Dataflow em simultâneo.
  • Cada trabalhador do Dataflow tem um limite máximo de registos que pode gerar num intervalo de tempo. Consulte a documentação de registo para ver o limite exato.
  • Se aceitar as quotas ao nível da organização, cada organização pode executar, por predefinição, no máximo 125 tarefas do Dataflow simultâneas.
  • Cada utilizador pode fazer até 15 000 pedidos de monitorização por minuto.
  • Cada utilizador pode fazer até 60 pedidos de criação de tarefas por minuto.
  • Cada utilizador pode fazer até 60 pedidos de modelos de tarefas por minuto.
  • Cada utilizador pode fazer até 60 pedidos de atualização de tarefas por minuto.
  • Cada projeto da Google Cloud Platform recebe os seguintes espaços de aleatorização em cada região:
    • asia-east1: 48 slots
    • asia-northeast1: 24 ranhuras
    • asia-northeast3: 32 slots
    • asia-south1: 64 slots
    • asia-southeast1: 64 ranhuras
    • austrália-sudeste1: 24 ranhuras
    • europe-west1: 640 slots
    • europe-west2: 32 slots
    • europe-west3: 40 espaços
    • europe-west4: 640 slots
    • northamerica-northeast1: 512 espaços
    • us-central1: 640 espaços
    • us-east1: 640 espaços
    • us-east4: 64 espaços
    • us-west1: 384 slots
    • us-west2: 24 espaços
    • us-west3: 24 slots
    • outros: 16 ranhuras
    16 ranhuras são suficientes para misturar aproximadamente 10 TB de dados em simultâneo.
  • As tarefas em lote do Dataflow são canceladas após 10 dias.

Quotas do Compute Engine

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

A quota do Compute Engine é especificada por região. Reveja a quota do Compute Engine do seu projeto e peça os seguintes ajustes, se necessário:

  • CPUs: nas seguintes regiões, os tipos de máquinas predefinidos para o Dataflow são n1-standard-1 para o processamento em lote, n1-standard-2 para tarefas que usam o Streaming Engine, n1-standard-4 para tarefas de streaming que não usam o Streaming Engine e n1-standard-2 para tarefas que usam o agendamento flexível de recursos (FlexRS). FlexRS usa 90% de VMs preemptivas e 10% de VMs normais.
    • 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áquinas predefinidos são e2-standard-2 para o processamento em lote, e2-standard-2 para tarefas que usam o Streaming Engine, e2-standard-4 para tarefas de streaming que não usam o Streaming Engine e e2-standard-2 para tarefas 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 ver um mapeamento dos tipos de máquinas para a quantidade de CPUs, consulte Tipos de máquinas do Compute Engine.

  • Endereços IP em utilização: o número de endereços IP em utilização no seu projeto tem de ser suficiente para acomodar o número desejado de instâncias. Para usar 10 instâncias do Compute Engine, precisa de 10 endereços IP em utilização.
  • Disco persistente: o Dataflow anexa um disco persistente a cada instância.
    • O espaço em disco predefinido é de 250 GB para pipelines em lote e de 400 GB para pipelines de streaming. Para 10 instâncias, por predefinição,precisa de 2500 GB de disco persistente para uma tarefa em lote.
    • O espaço em disco predefinido é de 25 GB para pipelines em lote do Dataflow Shuffle.
    • O espaço em disco predefinido é de 30 GB para pipelines de streaming do Streaming Engine.
    • Atualmente, o serviço Dataflow está limitado a 15 discos persistentes por instância de worker quando executa uma tarefa de streaming. Cada disco persistente é local para uma máquina virtual do Compute Engine individual. Uma relação de 1:1 entre trabalhadores e discos é a atribuição mínima de recursos.
    • A utilização do Compute Engine baseia-se no número médio de trabalhadores, enquanto a utilização do Persistent Disk se baseia no valor exato de --maxNumWorkers. Os discos persistentes são redistribuídos de forma que cada trabalhador tenha um número igual de discos anexados.
  • Grupos de instâncias geridas regionais: o Dataflow implementa as suas instâncias do Compute Engine como um grupo de instâncias geridas regional. Tem de garantir que tem a seguinte quota relacionada disponível:
    • Um grupo de instâncias por tarefa do Dataflow
    • Um modelo de instância por tarefa do Dataflow
    • Um grupo de instâncias geridas regional por tarefa do Dataflow
  • Se os grupos de instâncias geridos estiverem em falta para uma tarefa de streaming durante mais de 7 dias, a tarefa é cancelada.
  • Se os grupos de instâncias geridos estiverem em falta para um trabalho em lote durante mais de 1 hora, o trabalho é cancelado.

Quotas adicionais

Consoante as origens e os destinos que estiver a usar, também pode precisar de quota adicional.

  1. Pub/Sub: se estiver a usar o Pub/Sub, pode precisar de quota adicional. Ao planear a quota, tenha em atenção que o processamento de 1 mensagem do Pub/Sub envolve 3 operações. Se usar datas/horas personalizadas, deve duplicar o número esperado de operações, uma vez que o Dataflow cria uma subscrição separada para acompanhar as datas/horas personalizadas.
  2. BigQuery: se estiver a usar a API de streaming para o BigQuery, aplicam-se limites de quota e outras restrições.

Encontre e aumente as quotas

Pode verificar a sua utilização atual da quota específica do Dataflow:

  1. Na Google Cloud consola, aceda a APIs e serviços.
    Aceda a API & Services (API e serviços)
  2. Para verificar a utilização atual da quota de Shuffle slots, no separador Quotas, encontre a linha Shuffle slots na tabela e, na coluna Gráfico de utilização, clique em Mostrar gráfico de utilização.

Se quiser aumentar a sua quota de tarefas, contacte o Apoio técnico da Google Cloud Platform e aumentaremos o limite para um valor que se adequa melhor às suas necessidades. A quota predefinida é de 25 tarefas do Dataflow simultâneas para o seu projeto ou 125 tarefas do Dataflow simultâneas para a sua organização.

Além disso, pode aumentar a quota de ranhuras aleatórias para tarefas em lote enviando um pedido de apoio técnico e especificando o tamanho máximo esperado do conjunto de dados aleatório simultâneo para todas as tarefas no seu projeto. Antes de pedir uma quota de Shuffle adicional, execute o pipeline com o Dataflow Shuffle e verifique a utilização real da quota de Shuffle.

Para tarefas de streaming, pode aumentar o débito do Streaming Engine enviando um pedido de apoio técnico ao apoio técnico da Google Cloud Platform. No seu pedido, especifique a quantidade máxima de dados que quer misturar entre os trabalhadores a cada minuto para cada região em que a sua tarefa é executada.

O serviço Dataflow também usa vários componentes da Google Cloud, como o BigQuery, o Cloud Storage, o Pub/Sub, e o Compute Engine. Estes (e outros Google Cloud serviços) usam quotas para limitar o número máximo de recursos que pode usar num projeto. Quando usa o Dataflow, pode ter de ajustar as definições de quota destes serviços.

Dataflow Prime

As quotas e os limites são os mesmos para o Dataflow e o Dataflow Prime. Se tiver quotas para o Dataflow, não precisa de quota adicional para executar os seus trabalhos com o Dataflow Prime.

Limites

Esta secção descreve os limites de produção práticos para o Dataflow.

Limite Montante
Número máximo de trabalhadores por pipeline. 2000
Tamanho máximo de um pedido de criação de tarefa. As descrições de pipelines com muitos passos e nomes muito detalhados podem atingir este limite. 10 MB
Tamanho máximo de um pedido de lançamento de modelo. 1 MB
Número máximo de fragmentos de entrada lateral. 20 000
Tamanho máximo para um único elemento (exceto quando se aplicam condições mais rigorosas, por exemplo, o Streaming Engine). 2 GB
Tamanho máximo da chave em pipelines em lote. 1,5 MB
Número máximo de entradas de registo num determinado período, por trabalhador. 15 000 mensagens a cada 30 segundos
Número máximo de métricas personalizadas por projeto. 100
Período durante o qual as recomendações são armazenadas. 30 dias
Limites do motor de streaming Montante
Número máximo de bytes para mensagens do Pub/Sub. 7 MB
Tamanho máximo para um único valor de elemento. 80 MB
Tamanho máximo de uma tecla grande. As chaves com mais de 64 KB causam uma diminuição do desempenho. 2 MB
Tamanho máximo para uma entrada lateral. 80 MB
Comprimento máximo das etiquetas de estado usadas por TagValue e TagBag. 64 KB