Il recommender con numero elevato di tabelle aperte di Cloud SQL consente di rilevare le istanze il cui numero di tabelle aperte contemporaneamente è uguale al valore di table_open_cache
. Fornisce quindi suggerimenti su come ottimizzare queste istanze per migliorare le prestazioni.
Questa pagina descrive il funzionamento del motore per suggerimenti con un numero elevato di tabelle aperte e come puoi utilizzarlo.
Come funziona
MySQL è multi-thread e i client possono eseguire contemporaneamente una query sulla stessa tabella da più thread. Di conseguenza, 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 meno utilizzata 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 utilizzate.
Se il numero di tabelle aperte supera il valore table_open_cache
, le prestazioni del database possono risentirne durante un carico di lavoro elevato. Questo avviene perché vengono creati più thread e i gestori delle tabelle devono aprire e chiudere le tabelle con maggiore frequenza.
Il motore per suggerimenti con numero elevato di tabelle aperte di Cloud SQL analizza ogni giorno le metriche per il numero di tabelle aperte su un'istanza MySQL di Cloud SQL. 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 è uguale o superiore al valore table_open_cache
, il motore per suggerimenti consiglia di modificare il flag table_open_cache
.
Prezzi
Il motore per suggerimenti con numero elevato di tabelle aperte di Cloud SQL si trova nel livello di prezzo del motore per suggerimenti Standard.
Prima di iniziare
Prima di poter visualizzare consigli e approfondimenti:
- Per ottenere le autorizzazioni per visualizzare e utilizzare insight e suggerimenti, assicurati di disporre dei ruoli richiesti.
Attività Ruoli Visualizza i suggerimenti Uno di questi ruoli: recommender.cloudsqlViewer
ocloudsql.viewer
.Applica i consigli Uno di questi ruoli: recommender.cloudsqlAdmin
,cloudsql.editor
ocloudsql.admin
. -
Attiva l'API Recommender.
Elenca suggerimenti sulle prestazioni delle istanze
Puoi elencare i suggerimenti sulle prestazioni delle istanze utilizzando la console Google Cloud, gcloud CLI
o l'API Recommender.
I suggerimenti per migliorare le prestazioni delle istanze vengono visualizzati solo se hai istanze che stanno per raggiungere i limiti di soglia di prestazioni.
Console
Per elencare suggerimenti sulle prestazioni delle istanze utilizzando la console Google Cloud, segui questi passaggi:
Vai alla pagina Istanze Cloud SQL.
Fai clic su Visualizza tutto nel banner dei consigli per aumentare la cache delle tabelle aperte.
In alternativa, procedi nel seguente modo:
Vai all'hub dei suggerimenti. Vedi anche la Guida introduttiva all'hub dei suggerimenti.
Nella scheda Migliora le prestazioni dell'istanza Cloud SQL, fai clic su Visualizza tutto.
Seleziona le istanze con il consiglio Aumenta la cache delle tabelle aperte.
Interfaccia a riga di comando gcloud
Per elencare i suggerimenti di miglioramento delle prestazioni dell'istanza 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
: l'ID del tuo progettoLOCATION
: una regione, ad esempious-central1
API
Per elencare i suggerimenti per il miglioramento delle prestazioni dell'istanza 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
: l'ID del tuo progetto.LOCATION
: una regione, ad esempious-central1
.
Se il motore per suggerimenti rileva istanze con un numero elevato di tabelle aperte, le elenca in una tabella insieme ad altri suggerimenti sulle prestazioni. Ogni riga mostra l'ID istanza, un breve suggerimento, il motore del database, la posizione e la data dell'ultimo aggiornamento.
Visualizza approfondimenti e consigli dettagliati
Puoi visualizzare insight 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 insight e suggerimenti dettagliati sulle istanze che sono vicine alla soglia di prestazioni utilizzando la console Google Cloud, fai clic sul link dei suggerimenti nell'elenco delle istanze.
Interfaccia a riga di comando gcloud
Per visualizzare insight e suggerimenti dettagliati sulle istanze che sono vicine alla soglia di prestazioni 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
: l'ID del tuo progetto.LOCATION
: una regione, ad esempious-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
: l'ID del tuo progetto.LOCATION
: una regione, ad esempious-central1
.
La tabella seguente elenca gli insight e i suggerimenti generati dal motore per suggerimenti per un numero elevato di tabelle aperte di Cloud SQL per aiutarti a migliorare le prestazioni.
I sottotipi sono visibili nei risultati di gcloud CLI
e dell'API.
Insight | Consiglio |
---|---|
Il numero di tabelle aperte corrisponde al valore del flag table_open_cache .Sottotipo: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES
| Aumenta le prestazioni delle istanze Cloud SQL riducendo il numero di tabelle aperte. Sottotipo: MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE
|
Applica i consigli
Valuta attentamente i consigli e procedi in uno dei seguenti modi:
Per esaminare l'istanza, fai clic su Visualizza istanza. Consulta Ottimizzare le prestazioni dell'istanza e seguire i consigli.
Per ignorare il consiglio in modo che venga meno sottolineato e appaia in grigio, fai clic su Ignora.
Per chiudere il riquadro senza applicare o ignorare il consiglio, fai clic su Annulla.
Ottimizza le prestazioni dell'istanza
Per ottimizzare le prestazioni dell'istanza, esegui una delle seguenti operazioni:
Aumenta il valore di
table_open_cache
di 500 finché il consiglio scompare. Il consiglio viene aggiornato quotidianamente. Pertanto, dopo aver aumentato il valore ditable_open_cache
, attendi 24 ore prima di ricontrollare.Se il valore di
open_tables
è maggiore ditable_open_cache
, aumenta il valore ditable_open_cache
fino al valoreopen_tables
.Per informazioni su come aggiornare un flag di database, consulta Configurare i flag di database.
Passaggi successivi
- Gestire un numero elevato di tabelle
- Monitorare la disponibilità dei dischi
- Identifica le istanze Cloud SQL inattive
- Riduci le istanze Cloud SQL con overprovisioning
- Esplora i motori per suggerimenti di Google Cloud