Der Cloud SQL-Recommender für hohe Transaktions-ID-Auslastung generiert proaktiv Empfehlungen, mit denen Sie potenzielle Transaktions-ID-Wraparounds für Cloud SQL PostgreSQL-Instanzen vermeiden können.
Sie können diese Empfehlung anwenden, wenn eine Cloud SQL-Instanz zu einem Transaktions-ID-Wraparound-Problem tendiert. Auf dieser Seite werden die Funktionsweise und die Verwendung des Cloud SQL-Recommenders für hohe Transaktions-ID-Auslastung beschrieben.
Funktionsweise
Eine Transaktions-ID wird beim Start der Transaktion zugewiesen und eingefroren, bis die Transaktion bereinigt wird. Die Transaktions-ID-Auslastung ist die Anzahl der nicht bereinigten Transaktionen („zugewiesen“ minus „eingefroren“), ausgedrückt als Anteil des Höchstwerts von 2 Milliarden. Bei den PostgreSQL-Standardeinstellungen, bei denen die Bereinigungsprozesse optimal und ohne Unterbrechung ausgeführt werden, tritt bei den meisten Datenbanken eine Transaktions-ID-Auslastung von etwa 10 % auf. Höhere Transaktions-ID-Auslastungen können in stark genutzten Datenbanken beobachtet werden, bei denen reguläre Arbeitslasten häufig Vorrang vor der Bereinigung haben. Wenn die Transaktions-ID-Auslastung zu sehr hohen Werten (80 % oder mehr) tendiert, besteht für die Datenbank möglicherweise das Risiko einer Ausschöpfung der Transaktions-IDs. Eine Transaktions-ID-Auslastung von 100 % wird als Transaktions-ID-Wraparound bezeichnet. Sobald der Prozentsatz der Transaktions-ID-Auslastung 100 % erreicht, akzeptiert PostgreSQL keine Schreibabfragen mehr.
Der Cloud SQL-Recommender für hohe Transaktions-ID-Auslastung analysiert die Transaktions-ID-Auslastung für eine Cloud SQL-PostgreSQL-Instanz.
Wenn der Prozentsatz der Transaktions-ID-Auslastung größer oder gleich 80 % ist, wird empfohlen, Maßnahmen zu ergreifen, um den Transaktions-ID-Wraparound zu vermeiden.
Preise
Der Cloud SQL-Recommender für hohe Transaktions-ID-Auslastung befindet sich in der Recommender-Preisstufe Standard.
Hinweis
Bevor Sie Empfehlungen und Informationen aufrufen können, müssen Sie Folgendes tun:
- Prüfen Sie, ob Sie die erforderlichen Rollen haben, um die Berechtigungen zum Aufrufen und Verwenden von Informationen und Empfehlungen zu erhalten.
Aufgaben Rollen Empfehlungen aufrufen Eine der folgenden Rollen: recommender.cloudsqlViewer
odercloudsql.viewer
.Empfehlungen übernehmen Eine der folgenden Rollen: recommender.cloudsqlAdmin
,cloudsql.editor
odercloudsql.admin
. -
Enable the Recommender API.
Empfehlungen zur Verbesserung der Instanzleistung auflisten
Sie können die Empfehlungen zur Verbesserung der Instanzleistung mit der Google Cloud Console, gcloud CLI
oder der Recommender API auflisten.
Die Empfehlungen zur Verbesserung der Instanzleistung werden nur angezeigt, wenn Instanzen in der Nähe eines Transaktions-ID-Wraparound liegen.
Console
So listen Sie Empfehlungen zur Instanzleistung mithilfe der Google Cloud Console auf:
Rufen Sie die Seite Cloud SQL-Instanzen auf.
Klicken Sie im Banner „Empfehlungen für Transaktions-ID-Wraparound“ auf Alle ansehen.
Oder führen Sie die folgenden Schritte aus:
Rufen Sie den Recommendation Hub auf. Siehe auch Erste Schritte mit dem Recommendation Hub.
Klicken Sie auf der Karte Cloud SQL-Instanzleistung verbessern auf Alle ansehen.
Wählen Sie die Instanzen mit der Empfehlung Transaktions-ID-Wraparound verhindern aus.
gcloud-CLI
Führen Sie den Befehl gcloud recommender recommendations list
so aus, um Empfehlungen zur Verbesserung der Instanzleistung mithilfe der gcloud CLI
aufzulisten:
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=LOCATION \ --recommender=google.cloudsql.instance.PerformanceRecommender \ --filter=recommenderSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
Dabei gilt:
PROJECT_ID
: Ihre Projekt-IDLOCATION
: eine Region, z. B.us-central1
API
Rufen Sie zum Auflisten von Empfehlungen zur Verbesserung der Instanzleistung mithilfe der Recommendations API die Methode recommendations.list
so auf:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilizationBestPractice/recommendations
Dabei gilt:
PROJECT_ID
: Ihre Projekt-ID.LOCATION
: eine Region, z. B.us-central1
Wenn der Recommender Instanzen mit hoher Transaktions-ID-Auslastung erkennt, werden diese in einer Tabelle mit anderen Leistungsempfehlungen aufgelistet. Jede Zeile enthält die Instanz-ID, eine kurze Empfehlung, das Datenbankmodul, den Ort und das Datum der letzten Aktualisierung.
Informationen und detaillierte Empfehlungen anzeigen
Mit der Google Cloud Console, gcloud CLI
oder der Recommender API können Sie Statistiken und detaillierte Empfehlungen zu Instanzen aufrufen, die zu einem Transaktions-ID-Wraparound tendieren.
Console
Wenn Sie mithilfe der Google Cloud Console Statistiken und detaillierte Empfehlungen zu Instanzen anzeigen möchten, die nahe am Leistungsgrenzwert liegen, klicken Sie auf den Empfehlungslink in der Liste der Instanzen.
gcloud-CLI
Um mit der gcloud CLI
Statistiken und detaillierte Empfehlungen zu Instanzen aufzurufen, die nahe am Leistungsgrenzwert liegen, führen Sie so den Befehlgcloud recommender insights list
aus:
gcloud recommender insights list \ --project=PROJECT_ID \ --location=LOCATION \ --insight-type=google.cloudsql.instance.PerformanceInsight \ --filter=insightSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION
Dabei gilt:
PROJECT_ID
: Ihre Projekt-ID.LOCATION
: eine Region, z. B.us-central1
API
Um mithilfe der Recommendations API Statistiken und detaillierte Empfehlungen zu Instanzen zu erhalten, die nahe am Leistungsgrenzwert liegen, rufen Sie so die Methode insights.list
auf:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilization/insights
Dabei gilt:
PROJECT_ID
: Ihre Projekt-ID.LOCATION
: eine Region, z. B.us-central1
In der folgenden Tabelle sind die Statisik und die Empfehlung aufgeführt, die der Cloud SQL-Recommender für hohe Transaktions-ID-Auslastung generiert. Die Untertypen werden in den Ergebnissen von gcloud CLI
und der API angezeigt.
Insight | Empfehlung |
---|---|
Der Prozentsatz der Transaktions-ID-Auslastung für diese Instanz ist hoch und fast bei 100 %. Untertyp: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION |
Vermeiden Sie einen möglichen Transaktions-ID-Wraparound für Cloud SQL-Instanzen. Untertyp: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
|
Empfehlungen übernehmen
Sehen Sie sich die Empfehlungen sorgfältig an und führen Sie einen der folgenden Schritte aus:
Klicken Sie zum Ansehen der Empfehlung auf Instanz aufrufen. Lesen Sie Leistung der Instanz optimieren oder Transaktions-ID-Wraparound verhindern und folgen Sie den Empfehlungen.
Klicken Sie auf Schließen, um die Empfehlung zu verwerfen, sodass sie ausgegraut ist und grau angezeigt wird.
Klicken Sie auf Abbrechen, um das Feld zu schließen, ohne die Empfehlung zu übernehmen oder zu verwerfen.
Leistung der Instanz optimieren
Gehen Sie so vor, um das Transaktions-ID-Wraparound-Problem für die Instanz zu beheben:
Weitere Informationen finden Sie im Blogpost VACUUM zum Beschleunigen der Transaktions-ID-Einfrierung in Cloud SQL for PostgreSQL verwenden.
Transaktions-ID-Wraparound verhindern
Führen Sie den folgenden Befehl aus, um einen Transaktions-ID-Wraparound für eine Instanz zu verhindern:
SELECT * FROM google_vacuum_mgmt.pg_fix_wraparound();
Beispielausgabe:
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%
Nächste Schritte
- Laufwerkverfügbarkeit überwachen
- Inaktive Cloud SQL-Instanzen identifizieren
- Überdimensionierte Cloud SQL-Instanzen reduzieren
- Google Cloud-Recommender ansehen