El recomendador de alta utilización de ID de transacción de Cloud SQL genera recomendaciones de forma proactiva que te ayudan a evitar un ajuste de ID de transacción posible para las instancias de PostgreSQL de Cloud SQL.
Puedes aplicar esta recomendación cuando una instancia de Cloud SQL tiende a solucionar un problema de unión de ID de transacción. En esta página se describe cómo funciona el recomendador de uso de ID de transacción alta de Cloud SQL y cómo puedes usarlo.
Cómo funciona
Se asigna un ID de transacción cuando se inicia la transacción, y se inmoviliza hasta que la transacción se limpia. El uso del ID de transacción es la cantidad de transacciones sin limpieza (asignadas menos inmovilizadas) que se expresa como una fracción del valor máximo de 2,000 millones. En la configuración predeterminada de PostgreSQL, con los procesos de vacío que se realizan de manera óptima y sin interrupciones, la mayoría de las bases de datos experimentan el uso del ID de transacción en la región de alrededor del 10%. Se pueden observar niveles de uso de ID de transacción más altos en las bases de datos ocupadas, en las que las cargas de trabajo normales suelen tener prioridad sobre el vacío. Si el uso del ID de transacción se acerca a valores muy altos (80% o más), la base de datos podría estar en riesgo de agotamiento del ID de transacción. El uso del ID de transacción que alcanza el 100% se determina como un ajuste de ID de transacción. Una vez que el porcentaje de uso del ID de transacción alcanza el 100%, PostgreSQL deja de aceptar consultas de escritura.
El recomendador de uso alto de ID de transacción de Cloud SQL analiza el uso del ID de transacción en una instancia de PostgreSQL de Cloud SQL.
Si el porcentaje de uso del ID de transacción es mayor o igual que el 80%, se recomienda realizar acciones para evitar el ajuste del ID de transacción.
Precios
El recomendador de uso alto de ID de transacción de Cloud SQL está en el Nivel de precios del recomendador Estándar.
Antes de comenzar
Antes de ver las recomendaciones y estadísticas, haz lo siguiente:
- Si deseas obtener los permisos para ver estadísticas y recomendaciones y trabajar con ellas, asegúrate de tener los roles requeridos.
Tareas Funciones Ver recomendaciones Uno de estos roles: recommender.cloudsqlViewer
ocloudsql.viewer
.Aplicar recomendaciones Uno de estos roles: recommender.cloudsqlAdmin
,cloudsql.editor
ocloudsql.admin
. -
Enable the Recommender API.
Enumera recomendaciones sobre el rendimiento de las instancias mejoradas
Puedes enumerar las recomendaciones de rendimiento de la instancia mejorada mediante la consola de Google Cloud, gcloud CLI
o la API del recomendador.
Las recomendaciones de rendimiento de las instancias mejoradas solo se muestran si tienes instancias que se acercan al ajuste del ID de transacción.
Console
Para enumerar recomendaciones sobre el rendimiento de las instancias a través de la consola de Google Cloud, sigue estos pasos:
Ve a la página Instancias de Cloud SQL.
Haz clic en Ver todo en el banner de recomendaciones Evita el ajuste del ID de transacción.
Alternativamente, sigue estos pasos:
Ve al Centro de recomendaciones. Consulta también Empieza a usar el Centro de recomendaciones.
En la tarjeta Mejora el rendimiento de las instancias de Cloud SQL, haz clic en Ver todo.
Elige las instancias con la recomendación Evita el ajuste del ID de transacción.
CLI de gcloud
Para mostrar una lista de las recomendaciones de rendimiento de la instancia mejorada a través de gcloud CLI
, ejecuta el comando gcloud recommender recommendations list
de la siguiente manera:
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=LOCATION \ --recommender=google.cloudsql.instance.PerformanceRecommender \ --filter=recommenderSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
Reemplaza lo siguiente:
PROJECT_ID
: el ID de tu proyectoLOCATION
: Es una región, comous-central1
API
Para mostrar una lista de las recomendaciones de rendimiento de la instancia a través de la API de Recommendations, llama al método recommendations.list
de la siguiente manera:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilizationBestPractice/recommendations
Reemplaza lo siguiente:
PROJECT_ID
: ID del proyectoLOCATION
: Es una región, comous-central1
.
Si el recomendador detecta instancias con un uso de ID de transacción alto, las enumera en una tabla con otras recomendaciones de rendimiento. En cada fila, se muestra el ID de instancia, una recomendación breve, el motor de base de datos, la ubicación y la última fecha de actualización.
Visualiza las estadísticas y las recomendaciones detalladas
Puedes ver estadísticas y recomendaciones detalladas sobre las instancias que tienden a unirse a un ID de transacción mediante la consola de Google Cloud, gcloud CLI
o la API del recomendador.
Console
Para ver estadísticas y recomendaciones detalladas sobre las instancias que están cerca del límite de rendimiento mediante la consola de Google Cloud, haz clic en el vínculo de recomendación en la lista de instancias.
CLI de gcloud
Para ver estadísticas y recomendaciones detalladas sobre las instancias que están cerca del umbral de rendimiento mediante gcloud CLI
, ejecuta el comando gcloud recommender insights list
de la siguiente manera:
gcloud recommender insights list \ --project=PROJECT_ID \ --location=LOCATION \ --insight-type=google.cloudsql.instance.PerformanceInsight \ --filter=insightSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION
Reemplaza lo siguiente:
PROJECT_ID
: ID del proyectoLOCATION
: Es una región, comous-central1
.
API
Para ver estadísticas y recomendaciones detalladas sobre las instancias que están cerca de la amenaza de rendimiento mediante la API de recomendaciones, llama al método insights.list
de la siguiente manera:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilization/insights
Reemplaza lo siguiente:
PROJECT_ID
: ID del proyectoLOCATION
: Es una región, comous-central1
.
En la siguiente tabla, se enumeran las estadísticas y recomendaciones que genera el recomendador de uso de ID de transacción alto de Cloud SQL. Los subtipos se pueden ver en los resultados de gcloud CLI
y la API.
Estadística | Recomendación |
---|---|
El porcentaje de uso del ID de transacción en esta instancia es alto y está cerca del 100%. Subtipo: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION |
Evita el posible ajuste del ID de transacción para las instancias de Cloud SQL. Subtipo: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
|
Aplicar recomendaciones
Evalúa las recomendaciones con cuidado y realiza una de las siguientes acciones:
Para examinar la recomendación, haz clic en Ver instancia. Consulta Optimiza el rendimiento de tu instancia o Evita el ajuste del ID de transacción y sigue las recomendaciones.
Para descartar la recomendación, de modo de restarle énfasis y que aparezca atenuada, haz clic en Descartar.
Para cerrar el panel sin aplicar ni descartar la recomendación, haz clic en Cancelar.
Optimiza el rendimiento de la instancia
Para abordar el problema de ajuste del ID de transacción con la instancia, haz lo siguiente:
Si deseas obtener información adicional, consulta la entrada de blog Usa VACUUM para acelerar la inmovilización de ID de transacciones en Cloud SQL para PostgreSQL.
Evita el ajuste del ID de transacción
Para evitar el ajuste de ID de transacción de una instancia, ejecuta el siguiente comando:
SELECT * FROM google_vacuum_mgmt.pg_fix_wraparound();
Resultado de ejemplo:
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%
¿Qué sigue?
- Supervisa la disponibilidad del disco
- Identifica instancias de Cloud SQL inactivas
- Reduce las instancias de Cloud SQL sobreaprovisionadas
- Explora los recomendadores de Google Cloud.