O recomendador de utilização elevada do ID da transação do Cloud SQL gera proativamente recomendações que ajudam a evitar uma potencial repetição do ID da transação para instâncias do Cloud SQL para PostgreSQL. O recomendador de utilização de IDs de transação elevados do Cloud SQL só é suportado para instâncias da edição Cloud SQL Enterprise Plus.
Pode aplicar esta recomendação quando uma instância do Cloud SQL estiver a evoluir para um problema de repetição do ID da transação. Esta página descreve como funciona a recomendação de utilização elevada do ID da transação do Cloud SQL e como pode usá-la.
Como funciona
É atribuído um ID da transação quando a transação começa e este fica congelado até que a transação seja eliminada. A utilização do ID da transação é o número de transações não eliminadas (atribuídas menos congeladas) expresso como uma fração do valor máximo de 2 mil milhões. Nas predefinições do PostgreSQL, com os processos de vácuo a funcionar de forma ideal e sem interrupções, a maioria das bases de dados regista uma utilização do ID da transação na ordem de aproximadamente 10%. Podem observar-se níveis de utilização de IDs de transações mais elevados em bases de dados ocupadas, onde os fluxos de trabalho normais têm frequentemente precedência sobre o vácuo. Se as tendências de utilização do ID da transação tenderem para valores muito elevados (80% ou mais), a base de dados pode estar em risco de esgotamento do ID da transação. A utilização do ID da transação a atingir 100% é denominada reversão do ID da transação. Quando a percentagem de utilização do ID da transação atinge 100%, o PostgreSQL deixa de aceitar consultas de escrita.
O recomendador de utilização elevada de IDs de transação do Cloud SQL analisa a utilização de IDs de transação numa instância do Cloud SQL para PostgreSQL.
Se a percentagem de utilização do ID da transação for igual ou superior a 80%, recomendamos que tome medidas para evitar a repetição do ID da transação.
Preços
O recomendador de utilização elevada do ID da transação do Cloud SQL está no nível de preços do recomendador padrão.
Antes de começar
Antes de poder ver recomendações e estatísticas, faça o seguinte:
- Para receber as autorizações para ver e trabalhar com estatísticas e recomendações,
certifique-se de que tem as funções necessárias.
Tasks Funções Ver recomendações Uma destas funções: recommender.cloudsqlViewer
oucloudsql.viewer
.Aplique recomendações Uma destas funções: recommender.cloudsqlAdmin
,cloudsql.editor
oucloudsql.admin
. -
Enable the Recommender API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Apresente recomendações para melhorar o desempenho das instâncias
Pode listar as recomendações de melhoria do desempenho da instância através da Google Cloud consolagcloud CLI
ou da API Recommender.
As recomendações para melhorar o desempenho das instâncias só são apresentadas se tiver instâncias que se estejam a aproximar de uma repetição do ID da transação.
Consola
Para ver recomendações sobre o desempenho da instância através da consolaGoogle Cloud , siga estes passos:
Aceda à página Instâncias do Cloud SQL.
Clique em Ver tudo no banner de recomendações Evite a repetição cíclica do ID da transação.
Em alternativa, siga estes passos:
Aceda ao Active Assist. Consulte também o artigo Começar a usar o Centro de Recomendações.
No cartão Melhore o desempenho da instância do Cloud SQL, clique em Ver tudo.
Selecione as instâncias com a recomendação Impedir a repetição do ID da transação.
CLI gcloud
Para apresentar uma lista de recomendações de melhoria do desempenho das instâncias através de gcloud CLI
, execute o comando gcloud recommender recommendations list
da seguinte forma:
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=LOCATION \ --recommender=google.cloudsql.instance.PerformanceRecommender \ --filter=recommenderSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
Substitua o seguinte:
PROJECT_ID
: o ID do seu projetoLOCATION
: uma região, comous-central1
API
Para apresentar uma lista de recomendações de melhoria do desempenho das instâncias através da API Recommendations, chame o método recommendations.list
da seguinte forma:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilizationBestPractice/recommendations
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.LOCATION
: uma região, comous-central1
.
Se o motor de recomendações detetar instâncias com uma utilização elevada do ID da transação, apresenta-as numa tabela com outras recomendações de desempenho. Cada linha mostra o ID da instância, uma breve recomendação, o motor da base de dados, a localização e a data da última atualização.
Veja estatísticas e recomendações detalhadas
Pode ver estatísticas e recomendações detalhadas sobre instâncias que estão a aproximar-se de uma repetição do ID da transação através da Google Cloud consola,
gcloud CLI
ou da API Recommender.
Consola
Para ver estatísticas e recomendações detalhadas sobre instâncias que estão perto do limite de desempenho através da Google Cloud consola, clique no link de recomendação na lista de instâncias.
CLI gcloud
Para ver estatísticas e recomendações detalhadas sobre instâncias que estão perto do limite de desempenho através de gcloud CLI
, execute o comando gcloud recommender insights list
da seguinte forma:
gcloud recommender insights list \ --project=PROJECT_ID \ --location=LOCATION \ --insight-type=google.cloudsql.instance.PerformanceInsight \ --filter=insightSubtype=POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.LOCATION
: uma região, comous-central1
.
API
Para ver estatísticas e recomendações detalhadas sobre instâncias que estão perto do limite de desempenho
através da API Recommendations,
chame o método insights.list
da seguinte forma:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.PostgresHighTransactionIdUtilization/insights
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.LOCATION
: uma região, comous-central1
.
A tabela seguinte indica a estatística e a recomendação que o recomendador de utilização elevada do ID de transação do Cloud SQL gera. Os subtipos são visíveis nos resultados da API e do gcloud CLI
.
Insight | Recomendação |
---|---|
A percentagem de utilização do ID da transação nesta instância é elevada e está perto de 100%. Subtype: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION |
Evite a potencial repetição do ID da transação para instâncias do Cloud SQL. Subtype: POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE
|
Aplique recomendações
Avalie cuidadosamente as recomendações e faça uma das seguintes ações:
Para examinar a recomendação, clique em Ver instância. Consulte os artigos Otimize o desempenho da sua instância ou Evite a repetição cíclica do ID da transação e siga as recomendações.
Para ignorar a recomendação de modo que seja desvalorizada e apareça esbatida, clique em Ignorar.
Para fechar o painel sem aplicar nem ignorar a recomendação, clique em Cancelar.
Otimize o desempenho da sua instância
Para resolver o problema de repetição do ID da transação com a instância, faça o seguinte:
Encontre a base de dados e a tabela que estão a causar a repetição.
Explore e interprete as métricas de utilização do ID da transação nas instâncias da base de dados.
Para mais informações, consulte também a publicação no blogue Usar o VACUUM para acelerar o congelamento do ID da transação no Cloud SQL para PostgreSQL.
Evite a repetição do ID da transação
Para evitar a repetição do ID da transação para 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%
O que se segue?
- Monitorize a disponibilidade de disco
- Identifique instâncias inativas do Cloud SQL
- Reduza as instâncias do Cloud SQL com aprovisionamento excessivo
- Explore os Google Cloud sistemas de recomendação