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.
Per ulteriori informazioni sui ruoli, consulta la sezione Informazioni sui ruoli e concessione delle autorizzazioni IAM.Tasks Ruoli Visualizza i suggerimenti Uno di questi ruoli: recommender.cloudsqlViewerocloudsql.viewer.Applica suggerimenti Uno di questi ruoli: recommender.cloudsqlAdmin,cloudsql.editor, ocloudsql.admin. 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.
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:
Vai alla pagina Istanze Cloud SQL.
Fai clic su Visualizza tutto nel banner dei suggerimenti per aumentare la cache delle tabelle aperte.
In alternativa, segui questi passaggi:
Vai ad Active Assist. Consulta anche Guida introduttiva all'hub dei suggerimenti.
Nella scheda Migliora il rendimento dell'istanza Cloud SQL, fai clic su Visualizza tutto.
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 progettoLOCATION: una regione, ad esempious-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 esempious-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 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: il tuo ID progetto.LOCATION: una regione, ad esempious-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:
Aumenta il valore di
table_open_cachedi 1000 finché il suggerimento non scompare. Il suggerimento viene aggiornato quotidianamente, quindi dopo aver aumentato il valore ditable_open_cache, attendi 24 ore prima di controllarlo di nuovo.Durante il picco del carico di lavoro, controlla il valore di
open_tables. Se il valore diopen_tablesè maggiore ditable_open_cache, aumenta il valore ditable_open_cacheal valore diopen_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.