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 :
- Surveiller votre consommation de produits et services Google Cloud
- Limiter votre consommation de ces ressources
- Demander des modifications de la valeur du quota et automatiser les ajustements de quota
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 :
Dans la console Google Cloud , accédez à la page Quotas.
Dans le tableau des quotas, cliquez sur Filtrer.
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é.
- Sur la page Quotas, cliquez sur Filtrer.
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.
Sélectionnez les quotas que vous souhaitez modifier.
Cliquez sur Modifier les quotas.
Saisissez votre nom, votre adresse e-mail et votre numéro de téléphone, puis cliquez sur Suivant.
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 |
|
| Obtenir des API | Lire une seule ressource. | 180-1000 |
|
| API d'obtention d'opération | Récupérer le dernier état d'une opération de longue durée. | 950-2000 |
|
| Répertorier les API | Lire un groupe de ressources du même type. | 180-1000 |
|
| API List operations | Répertorie les opérations qui correspondent à un filtre spécifique dans la requête. | 2200-3000 |
|
| API de modification | Modifier l'état de la ressource. | 180-250 |
|
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_connectionssur une instance de pool de lecture, la nouvelle valeur doit correspondre ou dépasser la valeurmax_connectionsde l'instance principale de son cluster. - Avant de réduire la taille d'une instance existante, mettez à jour la valeur de l'option
max_connectionsen 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 est4MBou 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 |