O recomendador de alta utilização do ID da transação do Cloud SQL gera recomendações proativas que ajudam a evitar possíveis encapsulamentos de ID da transação para instâncias do PostgreSQL do Cloud SQL.
É possível aplicar essa recomendação quando uma instância do Cloud SQL tende para um problema de encapsulamento de ID da transação. Nesta página, descrevemos como o recomendador de alta utilização do ID da transação do Cloud SQL funciona e como você pode usá-lo.
Como funciona
Um ID da transação é atribuído quando a transação é iniciada e é congelado quando ela é aspirada. O uso do ID da transação é o número de transações não aspiradas (atribuídas menos congeladas) expressas como uma fração do valor máximo de 2 bilhões. Nas configurações padrão do PostgreSQL, com processos de vácuo executando de maneira ideal e sem interrupção, a maioria dos bancos de dados tem utilização do ID da transação em aproximadamente 10%. Níveis mais altos de utilização do ID da transação podem ser observados em bancos de dados movimentados, em que as cargas de trabalho regulares geralmente têm precedência sobre o vácuo. Se a utilização do ID da transação tende para valores muito altos (80% ou mais), o banco de dados pode estar em risco de exaustão do ID da transação. O uso do ID da transação que atinge 100% é chamado de encapsulamento do ID da transação. Quando a porcentagem de utilização do ID da transação atinge 100%, o PostgreSQL para de aceitar consultas de gravação.
O recomendador de alta utilização do ID da transação do Cloud SQL analisa a utilização do ID da transação em uma instância do PostgreSQL do Cloud SQL.
Se a porcentagem de utilização do ID da transação for maior ou igual a 80%, é recomendável tomar medidas para evitar o encapsulamento do ID da transação.
Preços
O recomendador de alta utilização do ID da transação do Cloud SQL está no nível de preço Standard.
Antes de começar
Antes de visualizar as recomendações e insights, faça o seguinte:
- Para conseguir as permissões de visualização e trabalho com insights e recomendações,
verifique se você tem os papéis necessários.
Tarefas Papéis Ver recomendações Um destes papéis: recommender.cloudsqlViewer
oucloudsql.viewer
.Aplicar recomendações Um destes papéis: recommender.cloudsqlAdmin
,cloudsql.editor
, oucloudsql.admin
. -
Enable the Recommender API.
Listar recomendações para melhorar o desempenho da instância
É possível listar as recomendações para melhorar o desempenho da instância
usando o console do Google Cloud, o gcloud CLI
ou a API Recommender.
As recomendações para melhorar o desempenho da instância serão exibidas somente se você tiver instâncias perto de um encapsulamento do ID da transação.
Console
Para listar recomendações sobre o desempenho da instância usando o console do Google Cloud, siga estas etapas:
Acesse a página Instâncias" do Cloud SQL
Clique em Ver tudo no banner de recomendações "Evitar encapsulamento de ID de transação".
Ou então:
Acesse o Hub de recomendações. Consulte também os Primeiros passos com o Hub de recomendações.
No card Melhorar o desempenho das instâncias do Cloud SQL, clique em Ver tudo.
Selecione as instâncias com a recomendação Evitar encapsulamento de ID da transação.
CLI da gcloud
Para listar as recomendações para melhorar o desempenho da instância usando a gcloud CLI
, execute o
comando gcloud recommender recommendations list
da seguinte maneira:
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=LOCATION \ --recommender=google.cloudsql.instance.PerformanceRecommender \ --filter=recommenderSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
Substitua:
PROJECT_ID
: o ID do projetoLOCATION
: uma região, comous-central1
;
API
Para listar as recomendações para melhorar o desempenho da instância usando a
API Recommendations, chame o método
recommendations.list
da seguinte maneira:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilizationBestPractice/recommendations
Substitua:
PROJECT_ID
: o ID do projetoLOCATION
: uma região, comous-central1
.
Se o recomendador detectar instâncias com alta utilização do ID da transação, ele as lista em uma tabela com outras recomendações de desempenho. Cada linha mostra o ID da instância, uma breve recomendação, o mecanismo de banco de dados, o local e a data da última atualização.
Ver insights e recomendações detalhadas
É possível ver insights e recomendações detalhadas sobre instâncias que tendem para um encapsulamento do ID da transação usando o console do Google Cloud, a gcloud CLI
ou a API Recommender.
Console
Para ver insights e recomendações detalhadas sobre instâncias próximas do limite de desempenho usando o console do Google Cloud, clique no link de recomendação na lista de instâncias.
CLI da gcloud
Para ver insights e recomendações detalhadas sobre instâncias próximas do limite de desempenho usando a gcloud CLI
, execute o comando
gcloud recommender insights list
da seguinte maneira:
gcloud recommender insights list \ --project=PROJECT_ID \ --location=LOCATION \ --insight-type=google.cloudsql.instance.PerformanceInsight \ --filter=insightSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION
Substitua:
PROJECT_ID
: o ID do projetoLOCATION
: uma região, comous-central1
.
API
Para ver insights e recomendações detalhadas sobre instâncias próximas do limite de desempenho
usando a API Recommendations,
chame o insights.list
da seguinte forma:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilization/insights
Substitua:
PROJECT_ID
: o ID do projetoLOCATION
: uma região, comous-central1
.
A tabela a seguir lista o insight e a recomendação que o recomendador de
alta utilização do ID da transação do Cloud SQL gera. Os subtipos são visíveis nos resultados da gcloud CLI
e
da API.
Insight | Recomendação |
---|---|
A porcentagem de utilização do ID da transação nessa instância é alta e próxima de 100%. Subtipo: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION |
Evite possíveis encapsulamentos de ID da transação para instâncias do Cloud SQL. Subtipo: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
|
Aplicar recomendações
Avalie as recomendações com atenção e siga um destes procedimentos:
Para examinar a recomendação, clique em Visualizar instância. Consulte Otimizar o desempenho da instância ou Evitar encapsulamento do ID da transação e siga as recomendações.
Para dispensar a recomendação de modo que ela não seja enfatizada e apareça escurecida, clique em Dispensar.
Para fechar o painel sem aplicar ou dispensar a recomendação, clique em Cancelar.
Otimizar o desempenho da instância
Para resolver o problema de ID da transação com a instância, faça o seguinte:
Encontre o banco de dados e a tabela que estão causando o encapsulamento
Analise e interprete as métricas de utilização do ID da transação nas instâncias do banco de dados.
Para mais informações, consulte também a postagem do blog Como usar VACUUM para acelerar a congelamento do ID da transação no Cloud SQL para PostgreSQL.
Evitar encapsulamento do ID da transação
Para evitar o encapsulamento de ID da transação em uma instância, execute o seguinte comando:
SELECT * FROM google_vacuum_mgmt.pg_fix_wraparound();
Exemplo de saída:
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%
A seguir
- Monitorar a disponibilidade de disco
- Identificar instâncias inativas do Cloud SQL
- Reduzir o provisionamento de instâncias em excesso do Cloud SQL
- Conheça os recomendadores do Google Cloud