Attivare slow query log di MySQL

Da It Ikoula wiki.
Jump to navigation Jump to search


Il presente articolo è stato tradotto tramite un software di traduzione automatica. È possibile visualizzare l'origine articolo qui.

he:לאפשר שאילתות איטי יומני MySQL ro:Enable lent întrebare MySQL busteni ru:Включение медленных запросов MySQL журналы pl:Po wolnych zapytań MySQL logi ja:低速のクエリ MySQL のログを有効にします。 ar:تمكين الاستعلامات بطيئة سجلات الخلية zh:启用慢速查询 MySQL 日志 de:Langsame Abfragen MySQL Protokolle aktivieren nl:Langzame vragen MySQL logboeken inschakelen it:Attivare slow query log di MySQL pt:Permitir consultas lentas os logs do MySQL es:Permitir consultas lentas de MySQL logs en:Enable slow queries MySQL logs

Introduzione

Ricevere gli avvisi dal monitoraggio sulle query mysql lento (slow queries) : ces erreurs sont produites quand le temps d'exécution d'une requête MySQL dépasse le temps alloué défini par la variable MySQL long_query_time. Ces erreurs pouvant être produites par différents facteurs, nous verrons ici comment activer les logs de ces erreurs afin de les analyser et les corriger.

Posto

Veuillez noter qu'activer les logs de slow queries peut ralentir votre Server, étant donné que des écritures seront effectuées en même temps que l'exécution des requêtes lentes.

Verificare che i registri non sono già attivi

Per garantire che i log delle query lente non sono già accesi, connettersi in SSH al computer e inserire la shell di MySQL :

mysql -u utilisateur -p
[mot de passe]


Una volta nella shell di MySQL, immettere il seguente comando per ottenere l'elenco di tutte le variabili e i valori :

show variables;


Navigare per visualizzare la variabile nella colonna di sinistra "slow_query_log" : il 'Si ', i registri sono attivi. Il 'OFF', dobbiamo accenderli.

Slow-queries-1.png

Abilitare e configurare le query lenta di registro

Sempre nella shell di MySQL, immettere il seguente comando :

set global slow_query_log = 'ON';


È inoltre possibile impostare un percorso per la directory dove verranno archiviati i registri di query lenta :

set global slow_query_log_file ='/var/log/mysql/slow-query.log';


Infine, impostare un tempo minimo allocato a ciascuna richiesta per assicurarsi che non avete falsi positivi di query lenta : 10 secondi è un valore corretto, 20 secondi è consigliato se accade che il vostro Server indebolire a fronte del numero di query e visitatori (Questa variabile è impostata su basic 10 secondi) :

set global long_query_time = '20';


Infine, verificare che modifiche sono state prese in considerazione con il seguente comando :

show variables like '%slow%';


Analizzare i log

Nel caso di monitoraggio degli avvisi che ti dice che le query sono scritte come lento, è ora possibile analizzare i registri di slow_queries al fine di comprendere il motivo per questi ritardi :

# montrera les requêtes en temps réel
tail -f /var/log/mysql/slow-query.log # défini dans notre exemple ci-dessus
# sortie complète du fichier
cat /var/log/mysql/slow-query.log
# naviguer de haut en bas
less /var/log/mysql/slow-query.log


Spiegazione del fenomeno

Come spiegato all'inizio di questa forma, le query lente sono dedfinie con il tempo di esecuzione di query definito ; Se la query richiede più a lungo termine fissato dal long_query_time da eseguire, è definito come querie lento. La prima ragione di ottenere query con esecuzione prolungata può essere cattiva l'impostazione della variabile MySQL "long_query_time" ; un tempo massimo troppo basso può mettere alcune query pesanti direttamente in lento mentre sono in realtà abbastanza normale.

Un altro motivo può essere collegato all'utilizzo di MySQL da un servizio esterno ; nel caso di un sito Web, ad esempio, cattiva programmazione incorporando non collegamenti vicini di auto a MySQL può riempire il buffer, rendendo le query più in esecuzione.

Una configurazione errata del database può anche essere la causa del fenomeno : join di tabelle e le marcature (chiave) possono generare questi errori - ad esempio nel caso di una tabella senza una chiave primaria.

Enfin, il ne faut pas exclure l'hypothèse d'une attaque sur votre Server, générant de nombreuses requêtes qui finiront par s'entasser et donc dépasser la limite de temps d'exécution définie par long_query_time.

Conclusione

I registri sono ora attivi e dovrebbero permettere di analizzare meglio lente azioni sul database, consente di diagnosticare i problemi di prestazioni, programmazione o attacchi mirati. Inoltre, ora avete una visuale migliore sulle azioni eseguite sul vostro Server database.



Questo articolo sembra utile a voi ?

0



Non si dispone dei permessi necessari per inviare commenti.