Aumenta le dimensioni della cache delle tabelle aperte

Il motore per suggerimenti per i numeri elevati di tabelle aperte in Cloud SQL ti aiuta a rilevare le istanze il cui numero di tabelle aperte contemporaneamente è uguale al valore di table_open_cache. Fornisce quindi consigli su come ottimizzare queste istanze per migliorare le prestazioni.

Questa pagina descrive come funziona il motore per suggerimenti per i numeri elevati di tabelle aperte e come puoi utilizzarlo.

Come funziona

MySQL è multithread e i client possono eseguire contemporaneamente una query sulla stessa tabella da più thread. Pertanto, MySQL può avere tabelle aperte in modo indipendente per ogni sessione. Il numero di tabelle aperte contemporaneamente è gestito da table_open_cache. Se la cache è piena e vengono aperte altre tabelle, MySQL chiude la tabella utilizzata meno di recente. Se tutte le tabelle nella cache sono attualmente in uso, MySQL estende temporaneamente la cache e chiude le tabelle non appena diventano inutilizzate.

Se il numero di tabelle aperte supera il valore di table_open_cache, le prestazioni del database possono risentirne durante i carichi di lavoro intensi, in quanto vengono creati più thread e i gestori delle tabelle devono aprire e chiudere le tabelle con maggiore frequenza.

Il motore per suggerimenti per i numeri elevati di tabelle aperte in Cloud SQL analizza quotidianamente le metriche per il numero di tabelle aperte in un'istanza Cloud SQL MySQL. Se il numero di tabelle aperte aumenta di 1 ogni 2 secondi o più rapidamente nelle 24 ore precedenti e il numero di tabelle aperte supera il valore di table_open_cache, il motore per suggerimenti ti consiglia di modificare il flag table_open_cache.

Prezzi

Il motore per suggerimenti per i numeri elevati di tabelle aperte in Cloud SQL è incluso nel livello di prezzi Standard di Recommender.

Prima di iniziare

Prima di poter visualizzare i suggerimenti e gli insight, procedi nel seguente modo:

  • Per ottenere le autorizzazioni per visualizzare e utilizzare insight e suggerimenti, assicurati di avere i ruoli necessari.
    Tasks Ruoli
    Visualizza i suggerimenti Uno di questi ruoli: recommender.cloudsqlViewer o cloudsql.viewer.
    Applica suggerimenti Uno di questi ruoli: recommender.cloudsqlAdmin, cloudsql.editor, o cloudsql.admin.
    Per ulteriori informazioni sui ruoli, consulta la sezione Informazioni sui ruoli e concessione delle autorizzazioni IAM.
  • Abilita l'API Recommender.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    Abilitare l'API

Elenca i suggerimenti per il rendimento dell'istanza

Puoi elencare i suggerimenti per il rendimento dell'istanza utilizzando la console Cloud de Confiance , gcloud CLIo l'API Recommender.

I suggerimenti per migliorare il rendimento dell'istanza vengono visualizzati solo se hai istanze che si avvicinano ai limiti della soglia di rendimento.

Console

Per elencare i suggerimenti sul rendimento dell'istanza utilizzando la Cloud de Confiance console, segui questi passaggi:

  1. Vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Fai clic su Visualizza tutto nel banner dei suggerimenti per aumentare la cache delle tabelle aperte.

In alternativa, segui questi passaggi:

  1. Vai ad Active Assist. Consulta anche Guida introduttiva all'hub dei suggerimenti.

    Vai ad Active Assist

  2. Nella scheda Migliora il rendimento dell'istanza Cloud SQL, fai clic su Visualizza tutto.

  3. Seleziona le istanze con il suggerimento Aumenta la cache delle tabelle aperte.

gcloud CLI

Per elencare i suggerimenti per migliorare il rendimento dell'istanza utilizzando gcloud CLI, esegui il gcloud recommender recommendations list comando come segue:

gcloud recommender recommendations list \
--project=PROJECT_ID \
--location=LOCATION \
--recommender=google.cloudsql.instance.PerformanceRecommender \
--filter=recommenderSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto
  • LOCATION: una regione, ad esempio us-central1

API

Per elencare i suggerimenti per migliorare il rendimento dell'istanza utilizzando l' API Recommendations, chiama il recommendations.list metodo come segue:

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/recommenders/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfTablesBestPractice/recommendations

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • LOCATION: una regione, ad esempio us-central1.

Se il motore per suggerimenti rileva istanze con un numero elevato di tabelle aperte, le elenca in una tabella con altri suggerimenti sul rendimento. Ogni riga mostra l'ID istanza, un breve suggerimento, il motore del database, la località e la data dell'ultimo aggiornamento.

Visualizza insight e suggerimenti dettagliati

Puoi visualizzare insight e suggerimenti dettagliati sulle istanze con un numero elevato di tabelle aperte utilizzando la Cloud de Confiance console, gcloud CLI, o l'API Recommender.

Console

Per visualizzare insight e suggerimenti dettagliati sulle istanze che si avvicinano a la soglia di rendimento utilizzando la Cloud de Confiance console, fai clic sul link del suggerimento nell'elenco delle istanze.

gcloud CLI

Per visualizzare insight e suggerimenti dettagliati sulle istanze che si avvicinano a la soglia di rendimento utilizzando gcloud CLI, esegui il gcloud recommender insights list comando come segue:

gcloud recommender insights list \
--project=PROJECT_ID \
--location=LOCATION \
--insight-type=google.cloudsql.instance.PerformanceInsight \
--filter=insightSubtype=MYSQL_HIGH_NUMBER_OF_OPEN_TABLES

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • LOCATION: una regione, ad esempio us-central1.

API

Per visualizzare insight e suggerimenti dettagliati sulle istanze con un numero elevato di tabelle aperte utilizzando l'API Recommendations, chiama il metodo insights.list come segue:

GET https://recommender.googleapis.com/v1beta1/projects/PROJECT-ID/locations/LOCATION/insightTypes/google.cloudsql.instance.PerformanceRecommender.MySqlHighNumberOfOpenTables/insights

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • LOCATION: una regione, ad esempio us-central1.

La tabella seguente elenca l'insight e il suggerimento generati dal motore per suggerimenti per i numeri elevati di tabelle aperte in Cloud SQL per aiutarti a migliorare il rendimento. I sottotipi sono visibili nei risultati dell'API e di gcloud CLI.

Insight Suggerimento
Il numero di tabelle aperte supera il valore del flag table_open_cache.
Sottotipo: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
Aumenta l'impostazione table_open_cache per aumentare il numero massimo di tabelle che possono essere mantenute aperte contemporaneamente in una singola cache. L'aumento di questo flag protegge le prestazioni durante i periodi di utilizzo elevato, ma può anche aumentare la memoria utilizzata.
Sottotipo: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE

Applica suggerimenti

Valuta attentamente i suggerimenti ed esegui una delle seguenti operazioni:

  • Per esaminare l'istanza, fai clic su Visualizza istanza. Consulta Ottimizzare il rendimento dell'istanza e segui i suggerimenti.

  • Per ignorare il suggerimento in modo che venga ridotto e visualizzato in grigio, fai clic su Ignora.

  • Per chiudere il riquadro senza applicare o ignorare il suggerimento, fai clic su Annulla.

Ottimizza il rendimento dell'istanza

Per ottimizzare il rendimento dell'istanza, esegui una delle seguenti operazioni:

  1. Aumenta il valore di table_open_cache di 1000 finché il suggerimento non scompare. Il suggerimento viene aggiornato quotidianamente, quindi dopo aver aumentato il valore di table_open_cache, attendi 24 ore prima di controllarlo di nuovo.

  2. Durante il picco del carico di lavoro, controlla il valore di open_tables. Se il valore di open_tables è maggiore di table_open_cache, aumenta il valore di table_open_cache al valore di open_tables.

Per informazioni su come MySQL utilizza table_open_cache, consulta la sezione Come MySQL apre e chiude le tabelle.

Per informazioni su come aggiornare un flag di database, consulta Configurare i flag di database.

Passaggi successivi