L'outil de recommandation pour utilisation élevée d'ID de transaction Cloud SQL génère de manière proactive des recommandations qui vous aident à éviter la réinitialisation des ID de transaction pour les instances PostgreSQL Cloud SQL.
Vous pouvez appliquer cette recommandation lorsqu'une instance Cloud SQL tend vers un problème de réinitialisation d'ID de transaction. Cette page décrit le fonctionnement de l'outil de recommandation pour utilisation élevée d'ID de transaction, ainsi que son utilisation.
Fonctionnement
Un ID de transaction est attribué au démarrage de la transaction et bloqué jusqu'à ce que la transaction soit vide. L'utilisation de l'ID de transaction correspond au nombre de transactions non vidées (attribuées moins figées) exprimé par le biais d'une fraction de la valeur maximale de deux milliards. Avec les paramètres PostgreSQL par défaut, où les processus de vide fonctionnent de manière optimale et sans interruption, la plupart des bases de données connaissent un taux d'utilisation des ID de transaction d'environ 10 %. Des niveaux plus élevés d'utilisation des ID de transaction peuvent être observés dans les bases de données occupées où les charges de travail standards sont fréquemment prioritaires sur l'opération VACUUM. Si l'utilisation des ID de transaction s'approche de valeurs très élevées (80 % ou plus), la base de données peut présenter un risque d'épuisement des ID de transaction. L'utilisation de l'ID de transaction atteignant 100 % est appelée "réinitialisation de l'ID de transaction". Une fois que le pourcentage d'utilisation de l'ID de transaction atteint 100 %, PostgreSQL cesse d'accepter les requêtes d'écriture.
L'outil de recommandation d'utilisation élevée d'ID de transaction Cloud SQL analyse l'utilisation d'ID de transaction sur une instance PostgreSQL Cloud SQL.
Si le pourcentage d'utilisation de l'ID de transaction est supérieur ou égal à 80 %, il est recommandé d'éviter ce phénomène.
Tarifs
L'outil de recommandation d'utilisation élevée de l'ID de transaction Cloud SQL se trouve dans le niveau de tarification standard de l'outil de recommandation.
Avant de commencer
Afin de pouvoir afficher les recommandations et les insights, procédez comme suit :
- Pour obtenir les autorisations permettant d'afficher et d'utiliser les insights et les recommandations, assurez-vous de disposer des rôles requis.
Tâches Rôles Afficher les recommandations L'un des rôles suivants : recommender.cloudsqlViewer
oucloudsql.viewer
.Appliquer les recommandations L'un des rôles suivants : recommender.cloudsqlAdmin
,cloudsql.editor
oucloudsql.admin
. -
Enable the Recommender API.
Répertorier les recommandations d'amélioration des performances des instances
Vous pouvez répertorier les recommandations d'amélioration des performances d'instance à l'aide de la console Google Cloud, de gcloud CLI
ou de l'API Recommender.
Les recommandations d'amélioration des performances ne s'affichent que si des instances sont sur le point de réinitialiser un ID de transaction.
Console
Pour répertorier les recommandations relatives aux performances des instances en utilisant la console Google Cloud, procédez comme suit :
Accédez à la page Instances Cloud SQL.
Cliquez sur Tout afficher sur la bannière de recommandations "Empêcher l'encapsulation des ID de transaction".
Vous pouvez également procéder comme suit :
Accédez au centre de recommandations. Consultez également la section Premiers pas avec le centre de recommandations.
Dans la fiche Améliorer les performances des instances Cloud SQL, cliquez sur Tout afficher.
Sélectionnez les instances avec la recommandation Empêcher la réinitialisation de l'ID de transaction.
CLI gcloud
Pour répertorier les recommandations d'amélioration des performances des instances à l'aide de gcloud CLI
, exécutez la commande gcloud recommender recommendations list
comme suit :
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=LOCATION \ --recommender=google.cloudsql.instance.PerformanceRecommender \ --filter=recommenderSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projetLOCATION
: une région, telle queus-central1
API
Pour répertorier les recommandations d'amélioration des performances des instances à l'aide de l'API Recommendations, appelez la méthode recommendations.list
comme suit :
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilizationBestPractice/recommendations
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projetLOCATION
: une région, telle queus-central1
Si l'outil de recommandation détecte des instances avec une utilisation élevée d'ID de transaction, il les répertorie dans un tableau avec d'autres recommandations de performances. Chaque ligne indique l'ID d'instance, une brève recommandation, le moteur de la base de données, l'emplacement et la date de la dernière actualisation.
Afficher les insights et les recommandations détaillées
Vous pouvez afficher des insights et des recommandations détaillées sur les instances qui tendent vers une réinitialisation d'ID de transaction en utilisant la console Google Cloud, gcloud CLI
ou l'API Recommender.
Console
Pour afficher des insights et des recommandations détaillées sur les instances proches du seuil de performances à l'aide de la console Google Cloud, cliquez sur le lien de recommandation dans la liste des instances.
CLI gcloud
Pour afficher des insights et des recommandations détaillées sur des instances proches du seuil de performances à l'aide de gcloud CLI
, exécutez la commande gcloud recommender insights list
comme suit :
gcloud recommender insights list \ --project=PROJECT_ID \ --location=LOCATION \ --insight-type=google.cloudsql.instance.PerformanceInsight \ --filter=insightSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projetLOCATION
: une région, telle queus-central1
API
Pour afficher des insights et des recommandations détaillées sur des instances proches du seuil de performances à l'aide de l'API Recommendations, appelez la méthode insights.list
comme suit :
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilization/insights
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projetLOCATION
: une région, telle queus-central1
Le tableau suivant répertorie les insights et les recommandations générés par l'outil de recommandation Cloud SQL pour utilisation élevée des ID de transactions. Les sous-types sont visibles dans les résultats de gcloud CLI
et de l'API.
Insight | Recommandation |
---|---|
Le pourcentage d'utilisation de l'ID de transaction sur cette instance est élevé et proche de 100 %. Sous-type : POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION . |
Éviter l'éventuelle réinitialisation de l'ID de transaction pour les instances Cloud SQL. Sous-type : POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE .
|
Appliquer les recommandations
Étudiez attentivement les recommandations et effectuez l'une des opérations suivantes :
Pour examiner la recommandation, cliquez sur Afficher l'instance. Consultez la section Optimiser les performances de votre instance ou Empêcher la réinitialisation de l'ID de transaction, puis suivez les recommandations.
Pour ignorer la recommandation afin qu'elle ne soit plus mise en évidence et apparaisse grisée, cliquez sur Ignorer.
Pour fermer le panneau sans appliquer ni ignorer la recommandation, cliquez sur Annuler.
Optimiser les performances de votre instance
Pour résoudre le problème de réinitialisation de l'ID de transaction avec l'instance, procédez comme suit :
Pour plus d'informations, consultez également l'article de blog Utiliser VACUUM pour accélérer le gel des ID de transaction dans Cloud SQL pour PostgreSQL.
Empêcher la réinitialisation de l'ID de transaction
Pour éviter la réinitialisation de l'ID de transaction pour une instance, exécutez la commande suivante :
SELECT * FROM google_vacuum_mgmt.pg_fix_wraparound();
Exemple de résultat :
postgres=> select * from google_vacuum_mgmt.pg_fix_wraparound(); -[ RECORD 1 ]-----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- issue_description | Gemini has detected an open prepared transaction on your instance which is blocking vacuum. Monitor the transaction ID utilization and commit or rollback the transaction, as needed. query | ROLLBACK PREPARED 'trx_id_pin'; or COMMIT PREPARED 'trx_id_pin'; recommendation | To commit a prepared transaction, you must be connected as the same user that originally executed the transaction: postgres insights | Transaction ID Utilization: 88.49%
Étapes suivantes
- Surveiller la disponibilité des disques
- Identifier les instances Cloud SQL inactives
- Réduire les instances Cloud SQL surprovisionnées
- Découvrez les outils de recommandation Google Cloud.