Cotas e limites

Neste documento, você encontra informações sobre cotas e limites de recursos do Pub/Sub.

Para mais informações sobre como rastrear as cotas, incluindo o uso de tópicos ou assinaturas, consulte o Monitoring.

Como ver o uso das cotas e gerenciar os limites delas

Em um determinado projeto, é possível usar o painel de cotas de APIs e serviços para visualizar as cotas e o uso atuais. Use também o painel para modificar uma cota de cada vez.

Para modificar várias cotas, use o painel de cotas do IAM e administrador

Use um dos painéis acima para:

  • reduzir suas cotas;
  • iniciar um processo para solicitar limites de cota mais altos.

Atribuição de uso do projeto

Para a capacidade de assinantes por push, o uso da cota é cobrado no projeto que contém a assinatura de push.

Para as cotas a seguir, o uso é cobrado no projeto associado às credenciais do responsável pela chamada, não no projeto que contém o recurso solicitado (ou seja, o projeto que aparece no nome do tópico ou da assinatura):

  • Capacidade do editor
  • Capacidade do assinante
  • Operações de administrador

Por exemplo: se uma conta de serviço no projeto A envia uma solicitação para fazer uma publicação em um tópico no projeto B, a cota é cobrada no projeto A. Cada solicitação contém credenciais que incluem um ID de projeto.

Limites de cota

As cotas listadas na tabela a seguir podem ser visualizadas e editadas por projeto no painel de cotas de APIs e serviços

Cota Limite de cota padrão Descrição
Capacidade do editor 60.000.000 KB por minuto (1.000 MB/s) O uso da cota é baseado no tamanho das PubsubMessages publicadas:

É possível incluir várias mensagens em uma única solicitação de publicação, e não há cobrança de cota extra por mensagem.

Capacidade do assinante de pull 120.000.000 KB por minuto (2.000 MB/s) Para operações de pull, o uso da cota é baseado no tamanho das PubsubMessages retornadas:

Além disso, as solicitações Acknowledge e ModifyAckDeadline estão incluídas nessa cota:

  • AcknowledgeRequest (RPC)
  • ModifyAckDeadlineRequest (RPC)
    Capacidade do assinante de push 6.000.000 KB por minuto (100 MB/s) Para solicitações de entrega de push feitas para o endpoint de push, o uso da cota é baseado no tamanho das PubsubMessages enviadas para o endpoint de push.
    Capacidade do assinante de StreamingPull 120.000.000 KB por minuto (2.000 MB/s) O uso da cota é baseado no tamanho das PubsubMessages transmitidas para o assinante:

    As bibliotecas de cliente usam operações StreamingPull sempre que possível.

    Número de conexões StreamingPull abertas 30.000 conexões abertas de cada vez O número de conexões StreamingPull abertas a qualquer momento. Consulte StreamingPull.
    Operações de administrador 6.000 por minuto (100 operações/s) Cada operação de administrador, como GetTopicRequest, cobra uma unidade dessa cota.

    Em geral, Get*, List*, Create*, Delete*, ModifyPushConfig, SetIamPolicy, GetIamPolicy e TestIamPermissions englobam o conjunto de operações do administrador.

    Unidades de cota de capacidade

    O uso da cota de capacidade é medido em unidades de 1 kB. 1 kB é igual a 1000 bytes. Por exemplo, em um PublishRequest com 105 mensagens de 50 bytes cada, o tamanho dos dados do usuário será 105 * 50 bytes = 5250 bytes, portanto, o uso da cota será max(1kB, ceil(5250 bytes/1000)) = 6kB.

    Limites de recurso

    Recurso Limites
    Projeto 10.000 tópicos
    10.000 assinaturas
    5.000 snapshots
    Tópico 10.000 assinaturas anexas
    5.000 snapshots anexos
    Assinatura Retém as mensagens não confirmadas no armazenamento persistente por sete dias a partir do momento da publicação. Não há limite no número de mensagens retidas.
    As assinaturas sem atividade do cliente por 31 dias são excluídas automaticamente. A atividade é detectada por meio de chamadas como Pull, Acknowledge e operações de push bem-sucedidas.
    Solicitação de publicação 10 MB (tamanho total)
    1.000 mensagens
    Mensagem Tamanho da mensagem (campo data): 10 MB, o tamanho máximo da solicitação
    Atributos por mensagem: 100
    Tamanho da chave do atributo: 256 bytes
    Tamanho do valor do atributo: 1.024 bytes
    Mensagens por push pendentes 3,000 * N em que N é o número de regiões de publicação. Para mais informações, consulte Como usar as assinaturas de push.
    Streams de StreamingPull 10 MB/s por stream aberto
    Mensagens Pull/StreamingPull O serviço pode impor limites ao total de mensagens StreamingPull pendentes por conexão. Caso você se depare com esses limites, aumente a taxa em que as mensagens são confirmadas e o número de conexões utilizadas.

    Dicas e advertências

    Operações de alto volume

    Se você usar a ferramenta gcloud do SDK do Cloud com uma conta de usuário normal (ou seja, uma conta que não é de serviço), as operações do Pub/Sub serão limitadas a uma taxa adequada a operações manuais. As taxas acima desse limite resultarão no erro RESOURCE_EXHAUSTED. Para solucionar o problema, verifique se você está usando as credenciais da conta de serviço. Se você quiser usar credenciais do SDK do Cloud para automação, ative uma conta de serviço nas suas operações do Pub/Sub.

    Incompatibilidades de cota

    Incompatibilidades de cota acontecem quando as mensagens publicadas ou recebidas tiverem menos de 1.000 bytes. Por exemplo:

    • Se você publicar dez mensagens de 500 bytes em solicitações separadas, o uso da cota do editor será de 10.000 bytes. Isso ocorre porque as mensagens com menos de 1.000 bytes são automaticamente arredondadas para o próximo incremento de 1.000 bytes.

    • Se você receber essas dez mensagens em uma única resposta de pull, o uso da cota do assinante poderá ser de apenas 5 KB, já que o tamanho real de cada mensagem é combinado para determinar a cota geral.

    • O inverso também é verdadeiro. O uso da cota do assinante poderá ser maior que o da cota do editor se você publicar várias mensagens em uma única solicitação de publicação ou receber as mensagens em solicitações de envio separadas.