O recomendador do Cloud SQL de número elevado de tabelas abertas ajuda a detetar instâncias cujo número de tabelas abertas em simultâneo é igual ao valor de table_open_cache
. Em seguida, fornece recomendações sobre como otimizar essas instâncias para melhorar o desempenho.
Esta página descreve como funciona o recomendador de número elevado de tabelas abertas e como o pode usar.
Como funciona
O MySQL tem várias linhas de execução e os clientes podem emitir simultaneamente uma consulta na mesma tabela a partir de várias linhas de execução. Assim, o MySQL pode ter tabelas abertas de forma independente para cada sessão.
O número de tabelas abertas em simultâneo é gerido por table_open_cache
.
Se a cache estiver cheia e forem abertas tabelas adicionais, o MySQL fecha a tabela usada mais recentemente. Se todas as tabelas na cache estiverem a ser usadas atualmente, o MySQL expande a cache temporariamente e fecha as tabelas assim que deixarem de ser usadas.
Se o número de tabelas abertas exceder o valor de table_open_cache
, o desempenho da base de dados pode ser afetado negativamente durante uma carga de trabalho elevada. Isto deve-se ao facto de serem criadas mais linhas de execução e os controladores de tabelas terem de abrir e fechar as tabelas com maior frequência.
O recomendador de número elevado de tabelas abertas do Cloud SQL analisa diariamente as métricas relativas ao número de tabelas abertas numa instância do Cloud SQL MySQL. Se o número de tabelas abertas aumentar 1 a cada 2 segundos ou mais rápido nas 24 horas anteriores e o número de tabelas abertas for igual ou superior ao valor table_open_cache
, o recomendador aconselha a ajustar a flag table_open_cache
.
Preços
O recomendador de número elevado de tabelas abertas do Cloud SQL está no nível de preços do recomendador Standard.
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 de desempenho de instâncias
Pode listar as recomendações de desempenho das instâncias através da Google Cloud consolagcloud CLI
ou da API Recommender.
As recomendações para melhorar o desempenho das instâncias são apresentadas apenas se tiver instâncias que se estejam a aproximar dos limites do limite de desempenho.
Consola
Para ver recomendações sobre o desempenho das instâncias através da Google Cloud consola, siga estes passos:
Aceda à página Instâncias do Cloud SQL.
Clique em Ver tudo na faixa de recomendações de aumento da cache aberta da tabela.
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 Aumentar a cache aberta da tabela.
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=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_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.MySqlHighNumberOfTablesBestPractice/recommendations
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.LOCATION
: uma região, comous-central1
.
Se o recomendador detetar instâncias com um número elevado de tabelas abertas, 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 têm um número elevado de tabelas abertas 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 do 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=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
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 com um número elevado de tabelas abertas, use a API Recommendations. Para tal, 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.MySqlHighNumberOfOpenTables/insights
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.LOCATION
: uma região, comous-central1
.
A tabela seguinte apresenta a estatística e a recomendação que o recomendador high-number-of-open-tables do Cloud SQL gera para ajudar a melhorar o desempenho.
Os subtipos são visíveis nos resultados da gcloud CLI
e da API.
Insight | Recomendação |
---|---|
O número de tabelas abertas é igual ao valor da flag table_open_cache .Subtype: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
| Aumente o desempenho da instância do Cloud SQL reduzindo o número de tabelas abertas. Subtype: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE
|
Aplique recomendações
Avalie cuidadosamente as recomendações e faça uma das seguintes ações:
Para examinar a instância, clique em Ver instância. Consulte o artigo Otimize o desempenho da sua instância 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 otimizar o desempenho da sua instância, faça qualquer uma das seguintes ações:
Aumente o valor de
table_open_cache
em 500 até a recomendação desaparecer. A recomendação é atualizada diariamente. Por isso, depois de aumentar o valor detable_open_cache
, aguarde 24 horas antes de a verificar novamente.Se o valor de
open_tables
for superior atable_open_cache
, aumente o valor detable_open_cache
para o valor deopen_tables
.Para ver informações sobre como atualizar uma flag da base de dados, consulte o artigo Configure flags da base de dados.
O que se segue?
- Faça a gestão de um número elevado de tabelas
- 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