Il monitoraggio delle prestazioni dei database MySQL è un'attività quotidiana di quasi tutti i DBA MySQL. In questo post del blog cercheremo di dimostrare come monitorare le prestazioni dei database MySQL, con ClusterControl.
Cosa devi monitorare?
In generale, se stai monitorando le prestazioni di MySQL, dovresti probabilmente considerare di monitorare le seguenti cose:
- Gestione delle query - il monitoraggio delle prestazioni delle tue query può rivelarsi uno dei modi più efficienti per migliorare le prestazioni di MySQL.
- Rilevamento dei valori anomali delle query - i dati storici possono dirci molto:possono anche essere utilizzati per calcolare le prestazioni della query previste in base ai dati storici, quindi confrontare le prestazioni della query corrente con le prestazioni previste per rilevare i valori anomali della query.
- Prestazioni dello schema del database - ClusterControl può aiutarti a ottimizzare le prestazioni delle tue istanze MySQL fornendo informazioni dettagliate sugli schemi per garantire che gli schemi siano ottimizzati per il tuo carico di lavoro.
- Bilanciamento del carico - bilanciatori di carico come ProxySQL, HAProxy o MaxScale possono far funzionare il tuo database al meglio delle sue capacità. Questi sistemi di bilanciamento del carico possono essere facilmente distribuiti utilizzando ClusterControl.
Bilanciamento del carico del database e gestione delle query tramite ClusterControl
ClusterControl supporta i seguenti bilanciatori di carico:
- HAProxy
- MariaDB MaxScale
- ProxySQL
- Keepalived (solo indirizzo IP virtuale)
Tieni presente che ClusterControl deve risiedere su un nodo indipendente, separato dal tuo cluster di database.
Per quanto riguarda la gestione delle query, ClusterControl consente di assorbire quanto segue (si può vedere queste cose una volta che sei passato alla scheda Query Monitor):
- Puoi visualizzare le query più lente e di lunga durata.
- Puoi visualizzare un elenco di query attualmente in esecuzione.
- Puoi visualizzare un elenco di valori anomali della query.
Questa scheda fornisce un elenco aggregato di tutte le query principali in esecuzione su tutti i nodi del tuo cluster di database. ClusterControl ottiene le informazioni in uno di questi due modi:
- Le query vengono recuperate da PERFORMANCE_SCHEMA o
- Se PERFORMANCE_SCHEMA è disabilitato o non disponibile, ClusterControl analizzerà il contenuto del registro delle query lente.
Se è in uso il registro delle query lente, qui verranno elencate solo le query che superano il tempo di query lunghe.
Long Query Time raccoglie le query che richiedono più tempo dei secondi per l'esecuzione di Long Query Time (ad esempio, se il Long Query Time è 0,1 verranno registrate solo le query che richiedono più di 0,1 secondi per essere eseguite), " log query che non utilizzano indici?" configura il comportamento di ClusterControl per quanto riguarda le query senza indici, ecc.
La tabella delle query in alto viene aggiornata automaticamente ogni 30 secondi (la frequenza di aggiornamento può essere modificata). Le colonne della tabella delle query principali contengono un elenco di query campionate, nomi di database, il numero totale di occorrenze di query, il numero di righe coinvolte nelle operazioni, il numero di tabelle temporanee create per una determinata query ecc. - l'elenco delle query principali aggregate può anche essere ordinato per Occorrenza o Tempo di esecuzione per mostrare le query più comuni o le più lente.
ClusterControl consente anche di visualizzare un elenco di query attualmente in esecuzione. Anche questa pagina viene aggiornata automaticamente ogni 30 secondi e visualizza:
- Il server MySQL da cui viene recuperato il processo.
- L'ID di connessione.
- Il nome del database.
- L'utente MySQL che ha rilasciato la dichiarazione.
- Il tempo di esecuzione del thread MySQL in secondi.
- Il nome host del client che ha rilasciato la dichiarazione.
- Il tipo di comando che il thread sta eseguendo.
- Lo stato del thread (come spiegato nella documentazione MySQL)
La pagina dei valori anomali della query mostra le query che sono considerate "anomalie". In altre parole, questa pagina mostra tutte le query che richiedono più tempo per essere eseguite rispetto a una normale query di quel tipo, essendo più tempo definito come una deviazione di latenza di 2 sigma + tempo_query_medio. Questa pagina mostra:
- L'ora esatta in cui è stata acquisita la query.
- La query stessa.
- Il tempo impiegato per l'esecuzione della query SQL.
- Il tempo medio di esecuzione della query SQL.
- Il tempo di esecuzione della deviazione standard (microsecondi).
- Il tempo massimo di esecuzione della query (microsecondi).
- Il tempo di blocco della query (microsecondi).
La scheda Query Monitor fornisce un riepilogo dell'elaborazione delle query in tutti i nodi nel grappolo.
Riepilogo
Quando si tratta di monitorare le prestazioni dei database MySQL, ClusterControl può fare miracoli. ClusterControl può semplificare l'implementazione dei sistemi di bilanciamento del carico, può aiutarti a gestire facilmente le tue query e monitorarne le prestazioni, ClusterControl può anche calcolare le prestazioni delle query previste in base ai dati storici.