JeuWeb - Crée ton jeu par navigateur
Monitorer la base de donnée? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Monitorer la base de donnée? (/showthread.php?tid=1957)



Monitorer la base de donnée? - Argorate - 09-05-2014

Bonjour,

j'aimerais savoir quels sont les outils que vous connaissez/utilisez pour monitorer votre BD.

monitorer voulant dire avoir le log des requete sql, avec leur temps d'execution, et si possible le contexte de l'appel.
C'est assez chiant d'etre en aveugle quand on sent qu'il y a des coups de lag qui sont souvent du a des acces concurents ou des requetes non optimisé (apache ne logant pas les acces BD...).

Alors oui on peut se faire son propre logger php ceci dit, c'est une des solutions, mais si on en faisait une liste le lpus exhaustif que possible avec les avantages/désavantages, ça serait un plus pour tous le monde je crois.

j'ai entendu parlé mais n'utilise pas:

mysql workbench
mysql monitor (http://www.mysql.fr/products/enterprise/monitor.html) malheureusement payant (3000€/an de ce qu'on m'a dit Confused)

A vous !

Merci.


RE: Monitorer la base de donnée? - Harparine - 09-05-2014

Salut !
Tu peux déjà activer le log des requêtes lentes dans ton fichier de configuration (pour MySQL c'est la directive "slow_query_log" ou "log_slow_queries" pour les versions inférieures à la 5.1.29, je ne sais pas pour les autres DB).
Il y a également la possibilité de logger les requêtes sans index, voire toutes les requêtes mais ça risque de te plomber ton système et d'être peu lisible.
Les slowlogs sont une super source d'infos et tu peux régler la durée minimale d'une requête pour être considérée comme lente.
@+


RE: Monitorer la base de donnée? - Xenos - 13-09-2020

Ah, pour répondre, perso, c'est dans le pack des mutualisés OVH: on dispose de métriques sur le temps des requêtes, le nb de connexions, etc.
Je crois qu'on a aussi le slowquery, mais j'avoue ne jamais m'en servir en prod... Je n'ai jamais trop eu de soucis de latence qui serait lié à une mauvaise query SQL x)

J'ai aussi rajouté quelques lignes de code dans mon PHP pour avoir des "marqueurs" de temps à différents moments, et savoir ainsi, quand la page est terminée et envoyée au client, combien de temps (ms je crois) a pris chaque étape (controlleur, procédure SQL, parsing de la réponse du SQL, formattage de la page, envoie au client et temps total). Je sauve ça dans un fichier de log dans un coin du serveur, et je parse ce fichier quotidiennement pour avoir des statistiques globales.

Je ne sais pas si ce système restera à la longue. Je n'ai encore pas eu de soucis de "collision/lock" dans ce fichier de log, mais il n'est pas à exclure que, quand la charge monte (qq dizaines/centaines de joueurs vraiment actifs en même temps), cela devienne bloquant. Dans pareil cas, j'aviserai, et je retirerai sûrement cette stat.