L'autoscaling de pool de lecture ajoute ou supprime automatiquement des nœuds de pool de lecture dans le pool de lecture en fonction des besoins de charge de travail de votre application.
Vous pouvez contrôler l'autoscaling du pool de lecture en limitant l'utilisation moyenne du processeur dans le pool de lecture ou en limitant le nombre de connexions client autorisées à accéder au pool de lecture, à l'aide de l'une des deux métriques cibles suivantes :
- Utilisation moyenne du processeur : vous permet de définir l'utilisation moyenne du processeur dans laquelle vous souhaitez que le pool de lecture fonctionne. Le pool de lecture évolue automatiquement en fonction de l'utilisation du processeur par la charge de travail de votre application.
- Connexions moyennes à la base de données : vous permet de spécifier le nombre moyen de connexions à la base de données client qui doivent être traitées par chaque nœud. Le pool de lecture évolue automatiquement en fonction du nombre de connexions client.
Pour appliquer ces métriques cibles, vous devez également définir un nombre minimal et maximal de nœuds de pool de lecture.
Pour activer l'autoscaling du pool de lecture, vous pouvez configurer une ou les deux métriques cibles sur l'instance. Si les deux métriques sont actives, Cloud SQL applique le nombre maximal de nœuds du pool de lecture indiqué par les deux métriques.
Le tableau suivant répertorie les limites pour chaque métrique cible :
| Nom de la métrique cible | Limites | Métrique publique associée |
|---|---|---|
| Utilisation moyenne du processeur | Entre 0,1 et 0,9. | L'utilisation moyenne du processeur (cloudsql.googleapis.com/database/cpu/utilization) sur les nœuds du pool de lecture. |
| Nombre moyen de connexions à la base de données |
Entre 10 et 100 000.
Remarque : La valeur maximale acceptable correspond à la valeur maximale définie par l'indicateur de base de données max_connections.
|
Représente une moyenne des connexions client à la base de données (cloudsql.googleapis.com/database/network/connections) pour les nœuds du pool de lecture.
|
Lorsque les conditions de redimensionnement du pool de lecture sont remplies, les opérations d'autoscaling du pool de lecture peuvent être consultées dans la console Google Cloud . Toutes les autres opérations sur le pool de lecture et l'instance principale sont bloquées jusqu'à ce que l'autoscaling du pool de lecture soit terminé.
Caractéristiques de l'autoscaling des pools de lecture
Les caractéristiques suivantes s'appliquent :
- Les opérations de scaling vertical ne suppriment qu'un seul nœud à la fois.
- Les opérations de scaling horizontal ajoutent, en parallèle, autant de nœuds que nécessaire.
- Par défaut, les opérations de scaling vertical et horizontal sont appliquées. Vous pouvez éventuellement bloquer les opérations de réduction en les désactivant manuellement (
disableScaleIn). - Par défaut, une période de refroidissement de 600 secondes est appliquée entre les opérations d'autoscaling successives du pool de lecture. Une période de latence minimale de 60 secondes est requise, que vous augmentiez ou diminuiez la capacité.
- Lorsque vous définissez une métrique cible, vous devez également définir le nombre minimal (
minNodeCount) et maximal (maxNodeCount) de nœuds du pool de lecture que vous souhaitez utiliser. Si vous activez l'autoscaling sur un pool de lecture existant, la taille actuelle du pool de lecture doit se situer dans la plage que vous avez définie.
Limites
Les limites suivantes s'appliquent :
- L'autoscaling du pool de lecture accepte un maximum de 10 opérations d'autoscaling toutes les 24 heures.
- Si vous souhaitez créer un pool de lecture ou mettre à l'échelle un pool de lecture existant, vous devez attendre que les opérations de création et de mise à l'échelle précédentes soient terminées. Cela s'applique aux opérations associées au pool de lecture, ainsi qu'aux autres pools de lecture associés à la même instance principale. Si vous essayez d'exécuter des opérations simultanées, le message d'erreur suivant peut s'afficher :
Operation failed because another operation was already in progress.
Avant de commencer
Assurez-vous d'avoir effectué toutes les étapes préalables requises pour créer un pool de lecture.
Assurez-vous d'utiliser
gcloudversion 544.0.0 ou ultérieure.Assurez-vous d'utiliser la version 7.8.0 ou ultérieure du fournisseur Terraform.
Créer un pool de lecture avec l'autoscaling activé
Si vous spécifiez une valeur cible de 0,50 pour AVERAGE_CPU_UTILIZATION, des nœuds de pool de lecture seront ajoutés ou supprimés du pool de lecture pour maintenir l'utilisation moyenne du processeur dans le pool de lecture à 0,50 ou moins.
gcloud
Pour créer un pool de lecture avec l'autoscaling activé, exécutez la commande suivante :
gcloud sql instances create READ_POOL_NAME \ --tier=MACHINE_TIER --edition=ENTERPRISE_PLUS \ --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT \ --database-version=DATABASE_VERSION \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --region=REGION --network=NETWORK_NAME \ --no-assign-ip \ --auto-scale-enabled \ --auto-scale-max-node-count=MAX_NODE_COUNT \ --auto-scale-min-node-count=MIN_NODE_COUNT \ --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
Remplacez les éléments suivants :
- READ_POOL_NAME : nom que vous souhaitez attribuer au pool de lecture.
- MACHINE_TIER : niveau de machine que vous souhaitez utiliser, par exemple
db-perf-optimized-N-2. - NODE_COUNT : nombre de nœuds du pool de lecture avec lequel vous souhaitez commencer.
- DATABASE_VERSION : version de la base de données que vous souhaitez utiliser, par exemple
POSTGRES_16. - PRIMARY_INSTANCE_NAME : nom de l'instance principale que vous souhaitez utiliser.
- REGION : région que vous souhaitez utiliser, par exemple
us-east1. - NETWORK_NAME : nom du réseau que vous souhaitez utiliser.
- MAX_NODE_COUNT : nombre maximal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
5. - MIN_NODE_COUNT : nombre minimal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
1. - TARGET_METRIC_1 : métrique cible que vous souhaitez utiliser, par exemple :
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1 : valeur que vous souhaitez attribuer à la métrique cible que vous avez indiquée précédemment. Par exemple, pour la métrique cible
AVERAGE_CPU_UTILIZATION, vous pouvez attribuer la valeur0.50.
Terraform
Pour créer un pool de lecture avec l'autoscaling activé, utilisez une ressource Terraform.
L'exemple suivant inclut des ressources pour l'instance principale et le pool de lecture.
Appliquer les modifications
Pour appliquer votre configuration Terraform dans un projet Google Cloud , suivez les procédures des sections suivantes.
Préparer Cloud Shell
- Lancez Cloud Shell.
-
Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.
Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.
Préparer le répertoire
Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).
-
Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension
.tf, par exemplemain.tf. Dans ce tutoriel, le fichier est appelémain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.
Copiez l'exemple de code dans le fichier
main.tfque vous venez de créer.Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.
- Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
- Enregistrez les modifications.
-
Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
terraform init
Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option
-upgrade:terraform init -upgrade
Appliquer les modifications
-
Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
terraform plan
Corrigez les modifications de la configuration si nécessaire.
-
Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant
yeslorsque vous y êtes invité :terraform apply
Attendez que Terraform affiche le message "Apply completed!" (Application terminée).
- Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud , accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.
Supprimer les modifications
Pour supprimer vos modifications, procédez comme suit :
- Pour désactiver la protection contre la suppression, définissez l'argument
deletion_protectionsurfalsedans le fichier de configuration Terraform.deletion_protection = "false"
- Appliquez la configuration Terraform mise à jour en exécutant la commande suivante et en saisissant
yeslorsque vous y êtes invité :terraform apply
-
Supprimez les ressources précédemment appliquées à votre configuration Terraform en exécutant la commande suivante et en saisissant
yesà la requête :terraform destroy
REST v1
Pour créer un pool de lecture avec l'autoscaling activé, utilisez une requête POST avec la méthode instances:insert.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- READ_POOL_NAME : nom que vous souhaitez attribuer au pool de lecture.
- REGION : région dans laquelle vous souhaitez que l'instance réside, par exemple
us-central1. - PRIMARY_INSTANCE_ID : ID de l'instance principale que vous souhaitez utiliser.
- PROJECT_ID : ID du projet dans lequel vous souhaitez que le pool de lecture soit situé, tel que
my-project-name. - DATABASE_VERSION : version de la base de données que vous souhaitez utiliser, par exemple
MYSQL_8_0_37. - MACHINE_TIER : niveau de machine que vous souhaitez utiliser, par exemple
db-perf-optimized-N-2. - FULL_NETWORK_NAME : nom du réseau que vous souhaitez utiliser.
- MAX_NODE_COUNT : nombre maximal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
10. - MIN_NODE_COUNT : nombre minimal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
2. - TARGET_METRIC_1 : métrique cible que vous souhaitez utiliser, comme
AVERAGE_CPU_UTILIZATIONouAVERAGE_DB_CONNECTIONS. Vous devez définir au moins l'une des deux métriques disponibles. - VALUE_1 : valeur que vous souhaitez attribuer à la métrique cible que vous avez indiquée précédemment. Par exemple, pour la métrique cible
AVERAGE_CPU_UTILIZATION, vous pouvez attribuer la valeur0.50. - NODE_COUNT : nombre de nœuds du pool de lecture avec lequel vous souhaitez commencer, par exemple
3.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Corps JSON de la requête :
{
"name":"READ_POOL_NAME",
"region":"REGION",
"masterInstanceName":"PRIMARY_INSTANCE_ID",
"project":"PROJECT_ID",
"databaseVersion":"DATABASE_VERSION",
"settings":{
"tier":"MACHINE_TIER",
"edition":"ENTERPRISE_PLUS",
"ipConfiguration":{
"privateNetwork":"FULL_NETWORK_NAME",
"ipv4Enabled": false
},
"readPoolAutoScaleConfig":{
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"targetMetrics": [
{
"metric":"TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
},
"instanceType":"READ_POOL_INSTANCE",
"nodeCount": NODE_COUNT
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "PRIMARY_INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Pour créer un pool de lecture avec l'autoscaling activé, utilisez une requête POST avec la méthode instances:insert.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- READ_POOL_NAME : nom que vous souhaitez attribuer au pool de lecture.
- REGION : région dans laquelle vous souhaitez que l'instance réside, par exemple
us-central1. - PRIMARY_INSTANCE_ID : ID de l'instance principale que vous souhaitez utiliser.
- PROJECT_ID : ID du projet dans lequel vous souhaitez que le pool de lecture soit situé, tel que
my-project-name. - DATABASE_VERSION : version de la base de données que vous souhaitez utiliser, par exemple
MYSQL_8_0_37. - MACHINE_TIER : niveau de machine que vous souhaitez utiliser, par exemple
db-perf-optimized-N-2. - FULL_NETWORK_NAME : nom du réseau que vous souhaitez utiliser.
- MAX_NODE_COUNT : nombre maximal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
10. - MIN_NODE_COUNT : nombre minimal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
2. - TARGET_METRIC_1 : métrique cible que vous souhaitez utiliser, par exemple :
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1 : valeur que vous souhaitez attribuer à la métrique cible que vous avez indiquée précédemment. Dans cet exemple, attribuez la valeur
0.50à la métrique cibleAVERAGE_CPU_UTILIZATION. - NODE_COUNT : nombre de nœuds du pool de lecture avec lequel vous souhaitez commencer, par exemple
3.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
Corps JSON de la requête :
{
"name":"READ_POOL_NAME",
"region":"REGION",
"masterInstanceName":"PRIMARY_INSTANCE_ID",
"project":"PROJECT_ID",
"databaseVersion":"DATABASE_VERSION",
"settings":{
"tier":"MACHINE_TIER",
"edition":"ENTERPRISE_PLUS",
"ipConfiguration":{
"privateNetwork":"FULL_NETWORK_NAME",
"ipv4Enabled": false
},
"readPoolAutoScaleConfig":{
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"targetMetrics": [
{
"metric":"TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
},
"instanceType":"READ_POOL_INSTANCE",
"nodeCount": NODE_COUNT
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/PRIMARTY_INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "PRIMARTY_INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Activer l'autoscaling du pool de lecture sur un pool de lecture existant
Si vous avez déjà créé un pool de lecture, vous pouvez activer l'autoscaling en indiquant la configuration d'autoscaling que vous souhaitez utiliser.
Par exemple, si vous spécifiez une valeur cible de 50 pour AVERAGE_DB_CONNECTIONS, des nœuds seront ajoutés ou supprimés du pool de lecture pour maintenir le nombre moyen de connexions à la base de données dans le pool à 50 ou moins.
gcloud
Pour activer le pool de lecture avec autoscaling sur un pool de lecture existant, exécutez la commande suivante.
gcloud sql instances patch INSTANCE --auto-scale-enabled --auto-scale-max-node-count=MAX_NODE_COUNT --auto-scale-min-node-count=MIN_NODE_COUNT --auto-scale-out-cooldown-seconds=COOLDOWN_SECONDS_SCALE_OUT --auto-scale-in-cooldown-seconds=COOLDOWN_SECONDS_SCALE_IN --auto-scale-target-metrics=TARGET_METRIC_1=VALUE_1
Remplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance associée au pool de lecture que vous souhaitez modifier.
- MAX_NODE_COUNT : nombre maximal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
10. - MIN_NODE_COUNT : nombre minimal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
2. - COOLDOWN_SECONDS_SCALE_OUT : facultatif : temps d'arrêt ou d'attente en secondes entre la création ou la suppression de nœuds de pool de lecture, par exemple
180. Un intervalle minimum de 60 secondes est requis. La valeur par défaut est de 600 secondes. - COOLDOWN_SECONDS_SCALE_IN : facultatif : temps d'arrêt ou d'attente en secondes entre la création ou la suppression de nœuds de pool de lecture, par exemple
180. Un intervalle minimum de 60 secondes est requis. La valeur par défaut est de 600 secondes. - TARGET_METRIC_1 : métrique cible que vous souhaitez utiliser, par exemple :
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1 : valeur que vous souhaitez attribuer à la métrique cible que vous avez indiquée précédemment. Dans cet exemple, attribuez la valeur
50à la métrique cibleAVERAGE_DB_CONNECTIONS.
REST v1
Pour activer l'autoscaling pour un pool de lecture existant, utilisez la méthode PATCH.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_ID : ID de l'instance associée au pool de lecture.
- MAX_NODE_COUNT : nombre maximal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
10. - MIN_NODE_COUNT : nombre minimal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
2. - COOLDOWN_SECONDS : facultatif : temps d'arrêt ou d'attente en secondes entre la création ou la suppression de nœuds de pool de lecture, par exemple
180. - SCALE_IN_DISABLED : (facultatif) vous permet de désactiver le comportement de réduction du pool de lecture. Pour désactiver la réduction du pool de lecture, définissez la valeur sur
true. - TARGET_METRIC_1 : métrique cible que vous souhaitez utiliser, par exemple :
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1 : valeur que vous souhaitez attribuer à la métrique cible que vous avez indiquée précédemment. Dans cet exemple, attribuez la valeur
50à la métrique cibleAVERAGE_DB_CONNECTIONS.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{
"settings": {
"readPoolAutoScaleConfig": {
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"scaleOutCooldownSeconds": COOLDOWN_SECONDS,
"disableScaleIn": SCALE_IN_DISABLED,
"targetMetrics": [
{
"metric": "TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Pour activer l'autoscaling pour un pool de lecture existant, utilisez la méthode PATCH.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_ID : ID de l'instance associée au pool de lecture.
- MAX_NODE_COUNT : nombre maximal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
10. - MIN_NODE_COUNT : nombre minimal de nœuds du pool de lecture que vous souhaitez que le pool de lecture utilise, par exemple
2. - COOLDOWN_SECONDS : facultatif : temps d'arrêt ou d'attente en secondes entre la création ou la suppression de nœuds de pool de lecture, par exemple
180. - SCALE_IN_DISABLED : (facultatif) vous permet de désactiver le comportement de réduction du pool de lecture. Pour désactiver la réduction du pool de lecture, définissez la valeur sur
true. - TARGET_METRIC_1 : métrique cible que vous souhaitez utiliser, par exemple :
AVERAGE_CPU_UTILIZATIONAVERAGE_DB_CONNECTIONS
- VALUE_1 : valeur que vous souhaitez attribuer à la métrique cible que vous avez indiquée précédemment. Dans cet exemple, attribuez la valeur
50à la métrique cibleAVERAGE_DB_CONNECTIONS.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{
"settings": {
"readPoolAutoScaleConfig": {
"enabled": true,
"minNodeCount": MIN_NODE_COUNT,
"maxNodeCount": MAX_NODE_COUNT,
"scaleOutCooldownSeconds": COOLDOWN_SECONDS,
"disableScaleIn": SCALE_IN_DISABLED,
"targetMetrics": [
{
"metric": "TARGET_METRIC_1",
"targetValue": VALUE_1
}
]
}
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "UPDATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Désactiver l'autoscaling du pool de lecture sur un pool de lecture
Pour désactiver l'autoscaling du pool de lecture, procédez comme suit :
gcloud
Pour désactiver l'autoscaling du pool de lecture, exécutez la commande suivante.
gcloud sql instances patch INSTANCE_NAME --no-auto-scale-enabled
Remplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance associée au pool de lecture que vous souhaitez modifier.
REST v1
Pour désactiver l'autoscaling du pool de lecture, utilisez la méthode PATCH.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_ID : ID de l'instance associée au pool de lecture.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{
"settings":{
"readPoolAutoScaleConfig":{
"enabled": false
}
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
REST v1beta4
Pour désactiver l'autoscaling du pool de lecture, utilisez la méthode PATCH.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_ID : ID de l'instance associée au pool de lecture.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{
"settings":{
"readPoolAutoScaleConfig":{
"enabled": false
}
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
"status": "RUNNING",
"user": "user@example.com",
"insertTime": "2020-01-16T02:32:12.281Z",
"startTime": "2023-06-14T18:48:35.499Z",
"operationType": "CREATE",
"name": "OPERATION_ID",
"targetId": "INSTANCE_ID",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
"targetProject": "PROJECT_ID"
}
Afficher les métriques
Utilisez les insights système pour afficher les métriques pertinentes pour votre pool de lecture.
Pour AVERAGE_CPU_UTILIZATION, consultez le graphique de la métrique clé "Utilisation du processeur".
Pour AVERAGE_DB_CONNECTIONS, consultez le graphique de métrique clé Nombre total de connexions.
Surveiller les opérations d'autoscaling du pool de lecture
Lorsque les conditions sont remplies pour déclencher un événement d'autoscaling du pool de lecture, une opération UPDATE s'exécute sur l'instance. Vous pouvez afficher cette opération depuis la console Google Cloud .
Les opérations d'autoscaling des pools de lecture peuvent prendre 10 minutes ou plus pour s'appliquer à l'instance. Les connexions existantes ne seront pas transférées vers les nœuds de pool de lecture nouvellement ajoutés. Cela signifie que seul l'autoscaling du pool de lecture aura un impact sur les nouvelles connexions.
Pendant que l'opération d'autoscaling est en cours sur le pool de réplicas en lecture, vous devez attendre qu'elle se termine avant d'exécuter d'autres mises à jour sur le pool de réplicas en lecture ou sur l'instance principale. Si vous essayez d'exécuter des requêtes simultanées, vous pouvez recevoir le message d'erreur suivant :
Operation failed because another operation was already in progress.
Vous pouvez inspecter votre instance de pool de lecture et constater que le nombre de nœuds a changé :
gcloud sql instances describe READ_POOL_NAME | grep nodeCount
Remplacez les éléments suivants :
- READ_POOL_NAME : nom du pool de lecture pour lequel vous souhaitez obtenir des informations.
Journaux d'audit des événements système
Vous pouvez également consulter le message du journal d'audit Événement système associé à la méthode cloudsql.instances.readPoolAutoScale, qui contient l'ancien et le nouveau nombre de nœuds.