Aumentar o tamanho do cache de abertura da tabela

O recomendador de alto número de tabelas abertas do Cloud SQL ajuda a detectar instâncias com um número de tabelas abertas simultaneamente igual ao valor de table_open_cache. Depois, serão fornecidas recomendações sobre como otimizar essas instâncias para melhorar o desempenho.

Nesta página, descrevemos como o recomendador de alto número de tabelas abertas funciona e como você pode usá-lo.

Como funciona

O MySQL tem várias linhas de execução, e os clientes podem emitir uma consulta simultaneamente na mesma tabela usando várias linhas de execução. Assim, o MySQL pode ter tabelas abertas de maneira independente para cada sessão. O número de tabelas abertas simultaneamente é gerenciado por table_open_cache. Se o cache estiver cheio e outras tabelas forem abertas, o MySQL fechará a tabela usada menos recentemente. Se todas as tabelas em cache estiverem sendo usadas, o MySQL estenderá o cache temporariamente e fechará as tabelas assim que elas não forem usadas.

Se o número de tabelas abertas exceder o valor de table_open_cache, o desempenho do banco de dados poderá ser afetado negativamente durante a alta carga de trabalho. Isso ocorre porque mais linhas de execução são criadas e os gerenciadores de tabelas precisam abrir e fechar as tabelas com mais frequência.

O recomendador de alto número de tabelas abertas do Cloud SQL analisa métricas do número de tabelas abertas em uma instância do MySQL do Cloud SQL. Se o número de tabelas abertas aumentar em 1 a cada 2 segundos ou mais rapidamente nas 24 horas anteriores e o número de tabelas abertas for igual ou maior que o valor de table_open_cache, o recomendador aconselha a ajustar a flag table_open_cache.

Preços

O recomendador de alto número de tabelas abertas 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 ou cloudsql.viewer.
    Aplicar recomendações Um destes papéis: recommender.cloudsqlAdmin, cloudsql.editor, ou cloudsql.admin.
    Para mais informações sobre papéis, consulte Noções básicas sobre papéis e Como conceder permissões do IAM.
  • Ative a API Recommender.

    Ative a API

Listar recomendações de desempenho da instância

É possível listar as recomendações de desempenho da instância usando o console do Google Cloud, a 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 que estão perto dos limites de desempenho.

Console

Para listar recomendações sobre o desempenho da instância usando o console do Google Cloud, siga estas etapas:

  1. Acesse a página Instâncias" do Cloud SQL

    Acesse "Instâncias do Cloud SQL"

  2. Clique em Ver tudo no banner de recomendações "Aumentar cache aberto da tabela".

Ou então:

  1. Acesse o Hub de recomendações. Consulte também os Primeiros passos com o Hub de recomendações.

    Acesse o Hub de recomendações

  2. No card Melhorar o desempenho das instâncias do Cloud SQL, clique em Ver tudo.

  3. Selecione as instâncias com a recomendação Aumentar o cache aberto da tabela.

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=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE

Substitua:

  • PROJECT_ID: o ID do projeto
  • LOCATION: uma região, como us-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.MySqlHighNumberOfTablesBestPractice/recommendations

Substitua:

  • PROJECT_ID: o ID do projeto
  • LOCATION: uma região, como us-central1.

Se o recomendador detectar instâncias que tenham um número alto de tabelas abertas, 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 visualizar insights e recomendações detalhadas sobre instâncias que tenham um alto número de tabelas abertas 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=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES

Substitua:

  • PROJECT_ID: o ID do projeto
  • LOCATION: uma região, como us-central1.

API

Para ver insights e recomendações detalhadas sobre instâncias com um alto número de tabelas abertas usando a 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.MySqlHighNumberOfOpenTables/insights

Substitua:

  • PROJECT_ID: o ID do projeto
  • LOCATION: uma região, como us-central1.

A tabela a seguir lista o insight e a recomendação que o recomendador de alto número de tabelas abertas do Cloud SQL gera para ajudar a melhorar o desempenho. Os subtipos estã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.
Subtipo: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
Reduza o número de tabelas abertas para melhorar o desempenho da instância do Cloud SQL.
Subtipo: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_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 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 otimizar o desempenho da instância, siga um destes procedimentos:

  1. Aumente o valor de table_open_cache em 500 até a recomendação desaparecer. A recomendação é atualizada diariamente. Portanto, depois de aumentar o valor de table_open_cache, aguarde 24 horas antes de conferir novamente.

  2. Se o valor de open_tables for maior que table_open_cache, aumente o valor de table_open_cache para o valor de open_tables.

    Para saber como atualizar uma flag do banco de dados, consulte Configurar flags do banco de dados.

A seguir