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 poi consigli su come ottimizzare queste istanze per migliorare il rendimento.

Questa pagina descrive come funziona il motore per suggerimenti per un numero elevato 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 non vengono più utilizzate.

Se il numero di tabelle aperte supera il valore table_open_cache, le prestazioni del database possono risentirne negativamente durante i carichi di lavoro intensi. Questo perché vengono creati più thread e i gestori delle tabelle devono aprire e chiudere le tabelle più frequentemente.

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ù velocemente nelle 24 ore precedenti e il numero di tabelle aperte supera il valore di table_open_cache, il motore per suggerimenti consiglia di modificare il flag table_open_cache.

Prezzi

Il motore per suggerimenti per i numeri elevati di tabelle aperte in Cloud SQL si trova nel livello di prezzo Standard di Recommender.

Prima di iniziare

Prima di poter visualizzare consigli e approfondimenti, procedi nel seguente modo:

  • Per ottenere le autorizzazioni per visualizzare e utilizzare approfondimenti e consigli, assicurati di disporre dei ruoli richiesti.
    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 saperne di più sui ruoli, consulta Informazioni sui ruoli e Concessione delle autorizzazioni IAM.
  • Abilita l'API Recommender, se non è già abilitata.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di 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

Consigli sul rendimento delle istanze di elenco

Puoi elencare i suggerimenti sul rendimento delle istanze utilizzando la console Google Cloud , gcloud CLI o l'API Recommender.

I suggerimenti per migliorare il rendimento delle istanze vengono visualizzati solo se hai istanze che si stanno avvicinando ai limiti delle soglie di rendimento.

Console

Per elencare i consigli sul rendimento delle istanze utilizzando la consoleGoogle Cloud , 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 Aumenta la cache delle tabelle aperte.

In alternativa, segui questi passaggi:

  1. Vai ad Active Assist. Vedi anche Inizia a utilizzare l'hub dei suggerimenti.

    Vai ad Active Assist

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

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

gcloud CLI

Per elencare i consigli per migliorare il rendimento delle istanze utilizzando gcloud CLI, esegui il comando gcloud recommender recommendations list 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 delle istanze utilizzando l'API Recommendations, chiama il metodo recommendations.list 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 per il rendimento. Ogni riga mostra l'ID istanza, un breve suggerimento, il motore del database, la posizione e la data dell'ultimo aggiornamento.

Visualizzare approfondimenti e suggerimenti dettagliati

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

Console

Per visualizzare approfondimenti e consigli dettagliati sulle istanze che si avvicinano alla soglia di rendimento utilizzando la console Google Cloud , fai clic sul link del consiglio nell'elenco delle istanze.

gcloud CLI

Per visualizzare approfondimenti e consigli dettagliati sulle istanze che si avvicinano alla soglia di rendimento utilizzando gcloud CLI, esegui il comando gcloud recommender insights list 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 nel seguente modo:

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'approfondimento 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 incrementare il numero massimo di tabelle che possono essere mantenute aperte contemporaneamente all'interno di una singola cache. L'aumento di questo flag protegge le prestazioni durante i periodi di utilizzo elevato, ma può anche incrementare la memoria utilizzata.
Sottotipo: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE

Applica suggerimenti

Valuta attentamente i consigli e procedi in uno dei seguenti modi:

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

  • Per ignorare il consiglio in modo che venga meno enfatizzato e visualizzato in grigio, fai clic su Ignora.

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

Ottimizzare il rendimento dell'istanza

Per ottimizzare le prestazioni della tua istanza, esegui una delle seguenti operazioni:

  1. Aumenta il valore di table_open_cache di 1000 finché il consiglio 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 di carico di lavoro, controlla il valore di open_tables. Se il valore di open_tables è superiore a 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 Come MySQL apre e chiude le tabelle.

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

Passaggi successivi