Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
applications:cemu:mysql:debug [07/09/2021 11:07] cadiou [Regarder en temps réel les requêtes s'exécuter] |
applications:cemu:mysql:debug [22/01/2024 09:23] (Version actuelle) dumontj01 ↷ Page déplacée de moodle4_nouveautes:applications:cemu:mysql:debug à applications:cemu:mysql:debug |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Surveillance du serveur MySQL ====== | ||
| - | ===== Innodb status ===== | ||
| - | Executer | ||
| - | <file sql> | ||
| - | SHOW ENGINE INNODB STATUS\G | ||
| - | </ | ||
| - | |||
| - | Surveillez notamment le //**Buffer pool hit rate**// qui, s'il est élevé (par exemple 999/1000), indique que mysql va majoritairement chercher ses données en mémoire plutôt que sur le disque. | ||
| - | |||
| - | Pour plus de détails, voir | ||
| - | * https:// | ||
| - | * http:// | ||
| - | |||
| - | ===== Regarder les requêtes en cours d' | ||
| - | Pour demander à MySQL une liste des requêtes actuellement en cours d' | ||
| - | |||
| - | <file sql> | ||
| - | show full processlist; | ||
| - | </ | ||
| - | |||
| - | Inconvénient : On récupère un tableau de la situation à l' | ||
| - | |||
| - | <note tip> | ||
| - | **EN CAS DE CRISE**, pour garder un historique complet des requêtes SQL en cours sur le serveur (sur bddmoodle pour l' | ||
| - | <file bash> | ||
| - | . / | ||
| - | </ | ||
| - | |||
| - | Ce script execute notamment les requêtes ci-dessous et stocke ces sorties dans un fichier texte daté (dans /root/) pour analyse ultérieure : | ||
| - | <file SQL> | ||
| - | SHOW full processlist | ||
| - | SHOW ENGINE INNODB STATUS\G | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | ===== Regarder l' | ||
| - | // | ||
| - | |||
| - | Le traçage exhaustif de ces requêtes suspectes se trouve dans le fichier de log : | ||
| - | < | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | Il concerne le jour courant. // | ||
| - | ===== Traçage d' | ||
| - | Pour suivre l' | ||
| - | < | ||
| - | */1 * * * * / | ||
| - | </ | ||
| - | |||
| - | Dans le script // | ||
| - | <file bash> | ||
| - | echo `date +" | ||
| - | echo `date +" | ||
| - | </ | ||
| - | //(avec **< | ||
| - | |||
| - | Ensuite les 2 fichiers générés (// | ||
| - | |||
| - | * soit regardé sur place, par exemple avec | ||
| - | <file bash> | ||
| - | tail nb_bdd_* | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | On attend un nombre de requêtes aux environ de 50. Le nombre de fichiers ouverts, lui, est cumulatif, donc il augmente sans cesse. Ce qui nous intéresse est la vitesse à laquelle il augmente (actuellement est sur un rythme d' | ||
| - | </ | ||
| - | |||
| - | * soit récupérés (par exemple sur un poste de travail via un //scp//) et ouverts dans Libre Office Calc (ajouter '// | ||
| - | |||
| - | |||
| - | ===== Regarder en temps réel les requêtes s' | ||
| - | |||
| - | Pour surveiller en temps réel l' | ||
| - | |||
| - | * Avantage : temps réel | ||
| - | * Inconvénients : | ||
| - | * c'est très verbeux et peu vite devenir illisible | ||
| - | * génère potentiellement de très gros fichier de log | ||
| - | * impact sur les performances | ||
| - | |||
| - | (voir [[https:// | ||
| - | |||
| - | < | ||
| - | Ce qui est expliqué ici concerne MySQL version > 5.1.29 (avant c' | ||
| - | </ | ||
| - | |||
| - | <note warning> | ||
| - | Ne pas le faire sur la base de données d'une plateforme en production. le fichier de log serait trop gros ! | ||
| - | </ | ||
| - | |||
| - | Se connecter à la base de données avec le client SQL de son choix et taper | ||
| - | <code sql> | ||
| - | SET GLOBAL general_log=1; | ||
| - | </ | ||
| - | |||
| - | <note tip> | ||
| - | - On peut également limiter la sortie de log aux grosses requêtes (plus de 10 sec.) (voir les options de configuration // | ||
| - | </ | ||
| - | |||
| - | |||
| - | Pour voir en direct les requêtes exécutées, | ||
| - | <file bash> | ||
| - | tail -f / | ||
| - | </ | ||
| - | |||
| - | |||
| - | ===== Performances MySQL ===== | ||
| - | |||
| - | <note important> | ||
| - | |||
| - | (synthèse d' | ||
| - | |||
| - | Parmi les paramètres importants concernant les performances d' | ||
| - | * **// | ||
| - | * **// | ||
| - | * **// | ||
| - | |||
| - | Pour **consulter** la valeur d'une variable de configuration, | ||
| - | <file bash> | ||
| - | mysql -u root -p ecampus -e "show variables like ' | ||
| - | </ | ||
| - | (qui retourne ici // | ||
| - | |||
| - | Pour modifier une variable de façon durable, il faut le faire dans le fichier de configuration MySQL. | ||
| - | |||
| - | < | ||
| - | Après migration vers mariadb, c'est maintenant // | ||
| - | </ | ||
| - | |||
| <note important> | <note important> | ||
| - | Pour que les modifications soient prises en compte, il faut lancer un | + | La présente page était redondante avec une autre. |
| - | <file bash> | + | |
| - | service mysql restart | + | |
| - | </ | + | |
| - | (un //reload// ne suffit malheureusement pas) | + | |
| - | RAPPEL ! Des risques de déconnexions utilisateurs existe lors de l' | + | Voir [[cemu: |
| </ | </ | ||