Quotas et limites Pub/Sub

Google Cloud utilise des quotas pour limiter la quantité d'une ressource Google Cloud partagée spécifique que vous pouvez utiliser. Chaque quota représente une ressource dénombrable spécifique, telle que les appels d'API à un service particulier, le nombre d'octets envoyés à un service particulier ou le nombre de connexions en flux continu utilisées simultanément par votre projet.

De nombreux services présentent également des limites qui ne sont pas liées au système de quotas. Il s'agit de contraintes fixes, telles que les tailles maximales des messages ou le nombre de ressources Pub/Sub que vous pouvez créer dans un projet (il est impossible d'augmenter ou de diminuer le nombre de ressources Pub/Sub).

Afficher et gérer les quotas

Pour un projet donné, vous pouvez consulter les limites de quota actuelles et l'utilisation des quotas dans le tableau de bord des quotas IAM et d'administration. Vous pouvez également utiliser ce tableau de bord pour effectuer les opérations suivantes:

  • Réduire les limites de quota
  • Envoyer une demande d'augmentation des limites de quotas

Pour en savoir plus sur la surveillance et les alertes relatives à votre utilisation des quotas, consultez la page Surveillance.

Attribution de l'utilisation des quotas

Pour le débit d'abonné push, l'utilisation du quota est imputée au projet contenant l'abonnement push. Il s'agit du projet qui apparaît dans le nom de l'abonnement.

Pour tous les autres quotas, l'utilisation est imputée au projet associé aux identifiants spécifiés dans la requête. L'utilisation du quota n'est pas imputée au projet qui contient la ressource demandée.

Par exemple, si un compte de service du projet A envoie une requête de publication dans un sujet du projet B, le quota est imputé au projet A. Dans certains cas, vous souhaiterez peut-être que l'utilisation du quota soit imputée à un autre projet. Vous pouvez utiliser le paramètre système X-Goog-User-Project pour modifier le projet pour l'attribution des quotas. Pour en savoir plus sur X-Goog-User-Project, consultez la section Paramètres système.

Vous pouvez utiliser la gcloud CLI afin de définir l'attribution de quotas pour le projet pour une requête spécifique. La gcloud CLI envoie l'en-tête de requête X-Goog-User-Project.

Vous devez disposer du rôle roles/serviceusage.serviceUsageConsumer ou d'un rôle personnalisé avec l'autorisation serviceusage.services.use sur le projet que vous allez utiliser pour l'attribution de quotas.

L'exemple suivant montre comment obtenir la liste des abonnements du projet RESOURCE_PROJECT tout en facturant le quota d'opérations d'administration sur le projet QUOTA_PROJECT. Exécutez la commande suivante dans le terminal de la Google Cloud CLI:

gcloud pubsub subscriptions list --project=
RESOURCE_PROJECT --billing-project=
QUOTA_PROJECT

Remplacez QUOTA_PROJECT par l'ID du projet Google Cloud sur lequel vous souhaitez facturer le quota.

Notez que dans Pub/Sub, le projet facturé est toujours celui qui contient la ressource. Vous ne pouvez modifier le projet que pour l'attribution de quotas.

Quotas Pub/Sub

Les quotas répertoriés dans le tableau suivant peuvent être affichés et modifiés par projet dans le tableau de bord des quotas d'API et de services.

Les quotas régionaux sont divisés en trois types:

  • Grandes régions: europe-west1, europe-west4, us-central1, us-east1, us-east4, us-west1, us-west2
  • Régions moyennes: asia-east1, asia-northeast1, asia-southeast1, europe-west2, europe-west3
  • Petites régions : toutes les autres régions

Les quotas de distribution de type "exactement une fois" sont spécifiques à une région. Consultez les détails pour chaque région dans le tableau suivant.

Quota Limite de quota par défaut Description
Débit d'éditeur par région
  • 240 000 000 ko par minute (4 Go/s) dans les grandes régions
  • 48 000 000 ko par minute (800 Mo/s) dans les régions de taille moyenne
  • 12 000 000 ko par minute (200 Mo/s) dans les petites régions

pubsub.googleapis.com/regionalpublisher

L'utilisation du quota est basée sur la taille des PubsubMessage publiés :

Sachez que plusieurs messages peuvent être inclus dans une seule requête de publication. Aucuns frais de quota supplémentaires par message ne sont appliqués.

Débit d'abonné pull par région
  • 240 000 000 ko par minute (4 Go/s) dans les grandes régions
  • 48 000 000 ko par minute (800 Mo/s) dans les régions de taille moyenne
  • 24 000 000 ko par minute (400 Mo/s) dans les petites régions

pubsub.googleapis.com/regionalsubscriber

L'utilisation du quota est basée sur la taille des PubsubMessage renvoyés :

Débit d'accusé de réception par région
  • 240 000 000 ko par minute (4 Go/s) dans les grandes régions
  • 48 000 000 ko par minute (800 Mo/s) dans les régions de taille moyenne
  • 24 000 000 ko par minute (400 Mo/s) dans les petites régions

pubsub.googleapis.com/regionalacknowledger

L'utilisation du quota est basée sur la taille des requêtes Acknowledge et ModifyAckDeadline :

Débit d'abonné push et exportation par région
  • 8 400 000 ko par minute (140 Mo/s) dans les grandes régions
  • 4 200 000 ko par minute (70 Mo/s) dans les régions de taille moyenne
  • 2 400 000 ko par minute (40 Mo/s) dans les petites régions

pubsub.googleapis.com/regionalpushsubscriber

Pour les requêtes de distribution push effectuées sur le point de terminaison push, l'utilisation du quota est basée sur la taille des PubsubMessage adressés au point de terminaison push.

Débit d'abonné StreamingPull par région
  • 240 000 000 ko par minute (4 Go/s) dans les grandes régions
  • 48 000 000 ko par minute (800 Mo/s) dans les régions de taille moyenne
  • 24 000 000 ko par minute (400 Mo/s) dans les petites régions

pubsub.googleapis.com/regionalstreamingpullsubscriber

L'utilisation du quota est basée sur la taille des PubsubMessage transmis à l'abonné :

Sachez que les bibliothèques clientes utilisent les opérations StreamingPull dans la mesure du possible.

Nombre de connexions StreamingPull ouvertes par région
  • 72 000 connexions ouvertes à la fois dans les grandes régions
  • 48 000 connexions ouvertes à la fois dans les régions de taille moyenne
  • 24 000 connexions ouvertes à la fois dans les petites régions

pubsub.googleapis.com/regionalstreamingpullconnections

Il s'agit du nombre de connexions StreamingPull ouvertes à un moment donné. Pour en savoir plus, consultez la section StreamingPull.

Opérations d'administration 6 000 par minute (100 opérations/s)

pubsub.googleapis.com/administrator

Chaque opération d'administrateur, telle que GetTopicRequest, impute une unité à ce quota.

Get*, List*, Create*, Delete*, Update*, ModifyPushConfig, SetIamPolicy, GetIamPolicy, TestIamPermissions, ValidateSchema, ValidateMessage,CommitSchema,RollbackSchema, DeleteSchemaRevision, ListSchemaRevisions et DetachSubscription sont des opérations d'administration.

Nombre de messages consommés par les abonnements pour lesquels la distribution "exactement une fois" est activée par région
  • 1 000 000 de messages par minute dans la région us-central1
  • 700 000 messages par minute dans la région us-east1
  • 300 000 messages par minute dans la région us-west1
  • 180 000 messages par minute dans les autres régions

pubsub.googleapis.com/exactlyoncedeliveredmessagecount

L'utilisation du quota est basée sur le nombre de PubsubMessage consommées par l'abonné:

Nombre de messages confirmés ou dont le délai est prolongé en cas d'utilisation d'abonnements pour lesquels la distribution "exactement une fois" est activée par région.
  • 10 000 000 de messages par minute dans la région us-central1
  • 7 000 000 de messages par minute dans la région us-east1
  • 3 000 000 de messages par minute dans la région us-west1
  • 1 800 000 messages par minute dans les autres régions

pubsub.googleapis.com/exactlyonceackcount

L'utilisation du quota est basée sur le nombre d'ID d'accusé de réception dans les requêtes Acknowledge et ModifyAckDeadline:

Unités de quota de débit

L'utilisation du quota de débit est mesurée en unités de 1 Ko. 1 Ko correspond à 1 000 octets. Par exemple, dans une requête PublishRequest contenant 105 messages de 50 octets chacun, la taille des données utilisateur correspond à 105 * 50 bytes = 5250 bytes. L'utilisation du quota est donc de max(1kB, ceil(5250 bytes/1000)) = 6kB.

Limites de ressources

Ressource Limites
Projet 10 000 sujets
10 000 abonnements associés ou dissociés
5 000 instantanés
10 000 schémas
Sujet 10 000 abonnements associés
5 000 instantanés associés
Si la conservation des messages du sujet est configurée, les messages publiés sur un sujet peuvent être conservés dans un stockage persistant jusqu'à 31 jours après leur publication.
Abonnement Par défaut, conserve les messages non confirmés dans un espace de stockage persistant pendant sept jours à compter de la date de publication. Il n'y a pas de limite au nombre de messages conservés.
Si un abonné n'utilise pas son abonnement, celui-ci expire. Par défaut, le délai d'expiration est de 31 jours.
Schéma Taille du schéma (champ definition): 50 Ko
Révisions par schéma: 20
Requête de publication 10 Mo (taille totale)
1 000 messages
Message Taille des messages (champ data): 10 Mo
Attributs par message: 100
Taille de la clé d'attribut: 256 octets
Taille de la valeur d'attribut: 1 024 octets
Flux StreamingPull 10 Mo/s par flux ouvert
Réponse pull unaire Nombre maximal de messages dans la réponse pull: 1 000
Taille maximale de la réponse pull: 10 Mo
Messages pull/StreamingPull Le service peut imposer des limites au nombre total de messages StreamingPull en attente par connexion. Si vous rencontrez de telles limites, augmentez la vitesse à laquelle vous accusez réception des messages et le nombre de connexions que vous utilisez.
Requêtes "Confirmation" et "ModifyAck pertinents" 512 Ko (taille totale)
Trier les clés Si les messages comportent des clés de tri, le débit maximal de l'éditeur est de 1 Mbit/s pour chaque clé de tri.

Utiliser un compte de service pour les quotas plus élevés

Si vous utilisez l'outil gcloud de Google Cloud CLI avec un compte utilisateur normal (c'est-à-dire autre qu'un compte de service), les opérations Pub/Sub sont limitées à un débit adapté aux opérations manuelles. Des taux dépassant cette limite génèrent l'erreur RESOURCE_EXHAUSTED. La solution consiste à vérifier que vous utilisez les identifiants du compte de service. Si vous souhaitez utiliser les identifiants de la gcloud CLI pour l'automatisation, activez un compte de service pour vos opérations Pub/Sub.

Utiliser des points de terminaison de localisation pour acheminer les requêtes

Si vous disposez de quotas supplémentaires dans des régions spécifiques, vous pouvez acheminer les requêtes vers ces régions à l'aide de points de terminaison Pub/Sub emplacements. Lorsque vous publiez des messages sur un point de terminaison mondial, le service Pub/Sub peut acheminer le trafic vers une région qui ne dispose pas d'un quota suffisant.

Incohérences de quotas

Des incohérences de quotas peuvent se produire lorsque les messages publiés ou reçus ont une taille inférieure à 1 000 octets. Exemple :

  • Si vous publiez 10 messages de 500 octets dans des requêtes distinctes, votre quota de publication sera de 10 000 octets. En effet, les messages dont la taille est inférieure à 1 000 octets sont automatiquement arrondis à la tranche de 1 000 octets supérieure.

  • Si vous recevez ces 10 messages via une seule réponse pull, l'utilisation de votre quota d'abonné peut n'être que de 5 Ko, car la taille réelle de chaque message est combinée pour déterminer le quota global.

  • L'inverse est également vrai. L'utilisation du quota d'abonné peut être supérieure à l'utilisation du quota de publication si vous publiez plusieurs messages via une seule requête de publication ou si vous recevez les messages via des requêtes pull distinctes.