Aumente o tamanho da cache aberta da tabela

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 ou cloudsql.viewer.
    Aplique recomendações Uma destas funções: recommender.cloudsqlAdmin, cloudsql.editor ou cloudsql.admin.
    Para mais informações sobre funções, consulte os artigos Compreender as funções e Conceder autorizações de IAM.
  • 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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:

  1. Aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Clique em Ver tudo na faixa de recomendações de aumento da cache aberta da tabela.

Em alternativa, siga estes passos:

  1. Aceda ao Active Assist. Consulte também o artigo Começar a usar o Centro de Recomendações.

    Aceda ao Active Assist

  2. No cartão Melhore o desempenho da instância do Cloud SQL, clique em Ver tudo.

  3. 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 projeto
  • LOCATION: uma região, como us-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, como us-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, como us-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, como us-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:

  1. 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 de table_open_cache, aguarde 24 horas antes de a verificar novamente.

  2. Se o valor de open_tables for superior a table_open_cache, aumente o valor de table_open_cache para o valor de open_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?