Quotas et limites

AlloyDB pour PostgreSQL utilise des quotas et des limites système pour maintenir une allocation équitable des ressources, éviter les surcharges de service et vous aider à gérer l'utilisation des ressources.

Les quotas et les limites du système sont similaires, mais diffèrent sur les points suivants :

  • Les quotas ont des valeurs par défaut, mais vous pouvez généralement demander des ajustements.
  • Les limites système sont des valeurs fixes qui ne peuvent pas être modifiées.

Quotas

Google Cloud utilise des quotas pour garantir l'équité et réduire les pics d'utilisation et de disponibilité des ressources. Un quota limite la quantité d'une ressourceGoogle Cloud que votre projet Google Cloud peut utiliser. Les quotas s'appliquent à différents types de ressources, y compris les composants matériels, logiciels et réseau. Par exemple, ils peuvent limiter le nombre d'appels d'API à un service, le nombre d'équilibreurs de charge utilisés simultanément par votre projet ou le nombre de projets que vous pouvez créer. Ils protègent la communauté des utilisateurs deGoogle Cloud en empêchant la surcharge des services. Les quotas vous aident également à gérer vos propres ressources Google Cloud .

Le système Cloud Quotas permet d'effectuer les opérations suivantes :

Dans la plupart des cas, lorsque vous tentez d'utiliser une ressource plus que son quota ne le permet, le système bloque l'accès à la ressource et la tâche que vous essayez d'effectuer échoue.

Les quotas s'appliquent généralement au niveau du projet Google Cloud . Votre utilisation d'une ressource dans un projet n'affecte pas votre quota disponible dans un autre projet. Dans un projet Google Cloud , les quotas sont partagés entre toutes les applications et adresses IP.

Pour en savoir plus, consultez la présentation des quotas Cloud.

Tous les projets ne sont pas soumis aux mêmes quotas. Si votre utilisation de Google Cloud augmente, vos quotas peuvent augmenter.

Pour en savoir plus sur les quotas, consultez la documentation sur Cloud Quotas.

Pour en savoir plus sur les quotas imposés par AlloyDB, consultez Quotas de débit et Quotas de ressources.

Des limites s'appliquent également aux ressources AlloyDB. Contrairement aux quotas, les limites système ne peuvent pas être modifiées.

Autorisations de vérifier et modifier les quotas

Pour consulter vos quotas, vous devez bénéficier d'une autorisation serviceusage.quotas.get.

Pour modifier vos quotas, vous devez bénéficier d'une autorisation serviceusage.quotas.update.

Ces autorisations sont incluses par défaut dans les rôles IAM de base "Propriétaire" et "Éditeur", ainsi que dans le rôle "Administrateur de quotas" prédéfini.

Vérifier les quotas

Par défaut, le tableau des quotas de la console Google Cloud liste les quotas de tous les services. Vous pouvez vérifier les quotas actuels des ressources AlloyDB de votre projet à l'aide de la liste Filtre du tableau.

Pour vérifier les quotas actuels associés aux ressources AlloyDB de votre projet, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Quotas.

    Accéder à la section "Quotas"

  2. Dans le tableau des quotas, cliquez sur Filtrer.

  3. Sélectionnez Service dans la liste Propriétés, puis API AlloyDB dans la liste Valeurs.

Augmenter les quotas

À mesure que votre utilisation de Google Cloud s'accroît, les quotas peuvent augmenter en conséquence. Si vous prévoyez une augmentation importante de l'utilisation, envoyez une demande quelques jours avant afin de toujours disposer du quota approprié.

  1. Sur la page Quotas, cliquez sur Filtrer.
  2. Sélectionnez Service dans la liste Propriétés, puis API AlloyDB dans la liste Valeurs.

    Si l'API AlloyDB ne figure pas dans la liste, cela signifie que l'API AlloyDB Admin n'est pas activée.

  3. Sélectionnez les quotas que vous souhaitez modifier.

  4. Cliquez sur Modifier les quotas.

  5. Saisissez votre nom, votre adresse e-mail et votre numéro de téléphone, puis cliquez sur Suivant.

  6. Saisissez votre demande de quota, puis cliquez sur Envoyer la demande.

Les quotas de débit

AlloyDB accepte les quotas de débit, également appelés limites de débit ou quotas d'API. Les quotas de débit définissent le nombre de requêtes que vous pouvez envoyer à l'API AlloyDB.

Chaque quota de débit correspond à l'ensemble des requêtes d'un groupe constitué d'une ou de plusieurs méthodes de l'API AlloyDB. Les quotas de débit sont réinitialisés après un délai spécifique au service (par exemple, le nombre de requêtes API par jour).

Lorsque vous utilisez la Google Cloud CLI ou la console Google Cloud , vous envoyez des requêtes à l'API. Ces requêtes sont comptabilisées dans vos limites de débit. Si vous utilisez des comptes de service pour accéder à l'API, ces requêtes sont également comptabilisées dans votre limite de débit.

Les quotas de débit sont appliqués et réinitialisés automatiquement par intervalles de 60 secondes (1 minute). Cela signifie que si votre projet atteint une limite maximale de quota de débit à tout moment dans un délai de 60 secondes, vous devez attendre que le quota soit réinitialisé avant d'effectuer d'autres requêtes dans ce groupe. Si votre projet dépasse une limite de débit, vous recevez un code d'état HTTP 429 pour le motif suivant : rateLimitExceeded.

Les API AlloyDB sont divisées en six groupes en fonction du type d'opération. Les quotas de débit sont imposés par minute, par groupe d'API, par projet, par région et par utilisateur. Pour chaque combinaison unique de ces attributs, AlloyDB impose un quota distinct. Par exemple, si 100 utilisateurs accèdent aux API Mutate en une seule minute pour un projet et une région donnés, chaque utilisateur se voit attribuer un quota par défaut compris entre 180 et 250 requêtes par minute pour chaque combinaison de projet et de région.

La plage de quotas par défaut pour chaque groupe est la suivante :

Nom du groupe Description Plage de quotas par défaut en requêtes par minute Méthodes d'API
Connecter des API Établir de nouvelles connexions. 180-2000
  • projects.locations.clusters.generateClientCertificate
  • projects.locations.clusters.instances.getConnectionInfo
Obtenir des API Lire une seule ressource. 180-1000
  • projects.locations.clusters.get
  • projects.locations.clusters.instances.get
  • projects.locations.backups.get
  • projects.locations.get
API d'obtention d'opération Récupérer le dernier état d'une opération de longue durée. 950-2000
  • projects.locations.operations.get
Répertorier les API Lire un groupe de ressources du même type. 180-1000
  • projects.locations.clusters.list
  • projects.locations.clusters.instances.list
  • projects.locations.backups.list
  • projects.locations.supportedDatabaseFlags.list
  • projects.locations.list
API List operations Répertorie les opérations qui correspondent à un filtre spécifique dans la requête. 2200-3000
  • projects.locations.operations.list
API de modification Modifier l'état de la ressource. 180-250
  • projects.locations.clusters.create
  • projects.locations.clusters.patch
  • projects.locations.clusters.delete
  • projects.locations.clusters.restore
  • projects.locations.clusters.instances.create
  • projects.locations.clusters.instances.patch
  • projects.locations.clusters.instances.delete
  • projects.locations.clusters.instances.failover
  • projects.locations.clusters.instances.restart
  • projects.locations.backups.create
  • projects.locations.backups.patch
  • projects.locations.backups.delete
  • projects.locations.operations.delete
  • projects.locations.operations.cancel

Quotas de ressources

AlloyDB est compatible avec les quotas de ressources, également appelés quotas d'allocation. Les quotas de ressources représentent le nombre maximal de ressources que vous pouvez créer pour un type de ressources donné, sous réserve de disponibilité. Les quotas de ressources limitent l'utilisation des ressources qui ne sont pas soumises à un taux d'utilisation, tel que le nombre d'instances de machines virtuelles (VM) utilisées par votre projet à un moment donné.

Les quotas de ressources ne sont pas réinitialisés au fil du temps. Vous devez plutôt prendre des mesures pour libérer les ressources inutilisées, par exemple en supprimant un cluster inutile.

Des quotas de ressources sont imposés sur le nombre de clusters et de processeurs virtuels utilisés, comme indiqué dans les sections suivantes.

Quotas de ressources sur les clusters

Ce quota s'applique au nombre de clusters par projet et par région. La valeur par défaut de ce quota est comprise entre 3 et 10 clusters par projet et par région, en fonction de l'historique d'utilisation du projet. La valeur maximale acceptée pour ce quota est de 20 clusters par projet et par région.

Si vous envoyez une requête de création ou de restauration de cluster à l'aide de la console Google Cloud , de gcloud CLI ou de l'API AlloyDB, et que cela entraîne un dépassement de quota, la requête échoue avec un message d'erreur semblable à celui-ci :

Quota limit 'ClustersUsedPerProjectPerRegion' has been exceeded. Limit: 5 in region us-central1.

Quotas de ressources sur les processeurs virtuels

Ce quota s'applique au nombre de processeurs virtuels par projet et par région. Chaque instance consomme une partie de ce quota en fonction du nombre de VM qu'elle utilise. Chaque instance principale utilise deux VM. Chaque instance de pool de lecture utilise une VM pour chaque nœud qu'elle contient. Vous indiquez le nombre de vCPU utilisés par chaque VM lors de la création ou de la mise à jour de l'instance.

La valeur par défaut du quota pour tous les projets client est de 10 000 processeurs virtuels.

Si vous envoyez une requête de création ou de mise à jour d'instance à l'aide de la console Google Cloud , de gcloud CLI ou de l'API AlloyDB, et que cela entraîne un dépassement de quota, la requête échoue avec un message d'erreur semblable à celui-ci :

Quota limit 'VCPUsUsedPerProjectPerRegion' has been exceeded. Limit: 128 in region us-central1.

Quotas de ressources sur le stockage

Ce quota s'applique à la quantité de données pouvant être stockées dans chaque cluster. La valeur par défaut de ce quota est de 16 Tio par cluster. La valeur maximale acceptée est de 128 Tio par cluster.

Si vous effectuez une requête d'écriture de base de données, telle qu'une instruction INSERT qui entraîne un dépassement de quota, la requête échoue avec le message d'erreur suivant :

AlloyDB instance exceeds available storage quota.

Disponibilité des ressources

Les quotas de ressources ne garantissent pas que les ressources matérielles physiques sont disponibles à tout moment dans une région ou une zone. Si une série ou une forme de machine spécifique est temporairement indisponible dans votre emplacement cible, les opérations de création, de démarrage ou de scaling d'un cluster ou d'une instance peuvent échouer, même si votre projet dispose d'un quota restant. De plus, comme AlloyDB gère les VM Compute Engine sous-jacentes dans des projets locataires gérés par Google, les réservations Compute Engine ne s'appliquent pas aux ressources AlloyDB.

Pour atténuer les contraintes de ressources temporaires, vous pouvez réessayer l'opération après un certain délai, sélectionner une autre série de machines ou une autre taille de processeur virtuel, ou effectuer le déploiement dans une autre région. Pour obtenir des conseils détaillés, consultez Bonnes pratiques pour la planification de la capacité et la disponibilité des ressources et Bonnes pratiques pour le scaling et la disponibilité des ressources.

Limites

Élément Limite
Nœuds de pool de lecture par cluster (sur toutes les instances de pool de lecture) 20
Nombre maximal de connexions simultanées par instance

La limite par défaut varie en fonction de la taille de l'instance. Elle est ajustable jusqu'à la limite maximale acceptée par cette taille.

Nombre maximal de connexions simultanées

Par défaut, AlloyDB définit le nombre maximal de connexions simultanées pour une instance en fonction de sa taille. Pour modifier cette limite, définissez l'option max_connections.

Utilisez le tableau suivant pour choisir la valeur max_connections en fonction de la taille de votre instance :

Processeur virtuel Mémoire (Go) Valeur max_connections par défaut Valeur max_connections maximale recommandée
1 8 100 200
2 16 100 570
4 32 200 980
8 64 400 2300
14 112 700 4000
16 128 800 4600
22 176 1000 6300
32 256 1000 9175
44 352 1000 12600
48 384 1000 13760
64 512 1000 18350
72 576 1000 20640
88 704 1000 25230
96 768 1000 27525
128 864 1000 30960
144 1152 1000 41290

Tenez compte des points suivants avant de définir la valeur :

  • Lorsque vous définissez l'option max_connections sur une instance de pool de lecture, la nouvelle valeur doit correspondre ou dépasser la valeur max_connections de l'instance principale de son cluster.
  • Avant de réduire la taille d'une instance existante, mettez à jour la valeur de l'option max_connections en conséquence. Sinon, vous risquez de rencontrer des problèmes.
  • Nous vous recommandons d'exécuter au maximum quatre requêtes simultanées par processeur virtuel d'instance.
  • Pour les charges de travail impliquant des connexions de courte durée, envisagez d'utiliser un pooler de connexions tel que pgbouncer ou pgpool-II.
  • Nous vous recommandons d'ajouter un pooler de connexions côté application, tel que HikariCP ou c3p0.
  • Si vous décidez de définir une valeur supérieure aux recommandations (jusqu'à 240 000), tenez compte de la consommation de mémoire supplémentaire pour chaque connexion active, qui réduirait la mémoire du tampon partagé.

    Cette consommation de mémoire peut être calculée en multipliant le nombre de requêtes simultanées par la valeur définie pour l'option work_mem. La valeur par défaut de cette option est 4MB ou le nombre de vCPU de l'instance, selon la valeur la plus élevée.

Limites des requêtes enregistrées

Valeur Limite
Nombre maximal de requêtes enregistrées par projet (y compris les requêtes enregistrées pour d'autres produits Google Cloud ) 10 000
Taille maximale de chaque requête 1 Mio