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 Cloud SQL para PostgreSQL. O recomendador de alta utilização do ID da transação do Cloud SQL tem suporte apenas para instâncias da edição Enterprise Plus 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 Cloud SQL para PostgreSQL.
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 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 consoleGoogle 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 Google Cloud ,
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 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 | Cloud SQL for PostgreSQL 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 doGoogle Cloud