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 [23/06/2020 14:00] 127.0.0.1 modification externe |
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 : | ||
- | * nécessite un redémarrage de MySQL pour la prise en compte du changement de config. | ||
- | * 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' | ||
- | </ | ||
- | |||
- | On peut agir sur le fichier de configuration de mysql (/// | ||
- | |||
- | Dans la section **[mysqld]**, | ||
- | |||
- | < | ||
- | log_output = ' | ||
- | general_log_file = / | ||
- | general_log = on | ||
- | </ | ||
- | |||
- | Puis redémarrer le service mysql. | ||
- | |||
- | <note tip> | ||
- | - On peut aussi exécuter une requête qui active les logs, mais je n'ai pas essayé. | ||
- | - On peut également limiter la sortie de log aux grosses requêtes (plus de 10 sec.) (voir les options de configuration // | ||
- | </ | ||
- | |||
- | <note warning> | ||
- | L' | ||
- | </ | ||
- | |||
- | 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: |
</ | </ |