MySQL : Apprendre à bien configurer

22 réponses
AuteurMessage

Rano
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 20/11/2006 à 12:51

Salut,

Je me penche de plus en plus sur le cas de MySQL, ClickInText oblige
Je suis allé un peu éplucher la doc et je me rend compte qu'il y a réellement tout un tas de petits points à configurer (différents buffer, cache, ouverture de tables, etc...). Pour les experts de mysql, comment avez vous appris à configurer toutes ces données ?

Comment choisir les valeurs à indiquer à ces paramètres en fonction de l'utilisation qu'est faite des données ?

Par exemple, pour ClickInText, je suis en train de faire pour mysql comme je fais pour apache, c'est à dire mettre plusieurs serveurs. Mais tous (bon, 2 pour l'instant ) n'ont pas la même utilité. Certains ne font que des select pour traiter les requêtes et quelques insert occasionnellement, d'autres ne sont là que pour bourriner à faire des insert pour stocker les affichages et clics (bon, là ca semble bien optimisé, il load à 0,15 pour l'ensemble du réseau ), d'autres ne font que des calculs de traitement des données pour les statistiques...

Enfin, chaque serveur mysql a ses propres fonctions et sa propre mise en avant. Où apprendre à les optimiser au cas par cas ?

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

Rano
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 20/11/2006 à 12:57

Par exemple, ce genre d'article, j'adore :
http://developpeur.journaldunet.com/tutoriel/out/0...Ouvrir dans une nouvelle fenetre

Il fait un listing qui sert à rien et finit par :
"Les administrateurs de SGBD se doivent de se documenter à leur propos pour optimiser au mieux leur système."

Voilà une nouvelle fois un article bien utile...

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

Shain
Membre

Photo de Shain

Inscrit le : 10/05/2005

# Le 20/11/2006 à 13:27

Effectivement, l'optimisation poussée de MySQL manque de documentation ... j'avais cherché il y a quelques mois, mais n'avais rien trouvé de très instructif. J'ai l'impression que mener ses propres tests est encore une des meilleure facon d'avancer ...

[ Shain ] - Saabre
http://www.automobile-propre.comOuvrir dans une nouvelle fenetre - http://fr.chargemap.comOuvrir dans une nouvelle fenetre

Rano
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 20/11/2006 à 13:57

Je viens de télécharger les outils fournis sur mysql déjà (Mysql Administrator notamment). Cela permet déjà de mettre en place des monitoring sur toutes les variables qu'on souhaite. De cette manière, on peut voir l'utilisation des différents cache, repérer quand il y a des pointes sur certaines variables, etc...

Un truc qui serait parfait (dans mon cas), c'est de pouvoir obtenir la liste des requêtes mysql en cours d'éxécution lorsque le nombre de connection est égal au nombre de connection maximum (et donc que les Too many connections commencent à arriver). Avec ça, y a vraiment moyen de repérer les faiblesses de la base (niveau architecture en tout cas). Ca arrive pas souvent, mais j'aimerai bien savoir pourquoi ca arrive quand ca arrive

EDIT : Il y a un Widget mac fournit avec Mysql Administrator bien pratique

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

Rano
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 20/11/2006 à 15:02

Bon, je devrais trouver mon bonheur dans les quelques 850 pages du guide de référence pour administrateurOuvrir dans une nouvelle fenetre édité par Mysql AB

C'est parti, ça fera quelques charges...

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

superfc
Membre

Photo de superfc

Inscrit le : 01/07/2006

# Le 20/11/2006 à 15:20

Déja le "long query" value devrait t'aider. Ca revient exactement au même, puisque quand le serveur est occupé, ça veut dire que y'a des requêtes qui prennent trop de temps. J'ai mis 2s, et j'en ai aucune perso.
Mais mon truc le plus consommateur est gpsfrance qui utilise des calculs de coordonnées GPS, et il fait ça tout de même très rapidement.

J'ai pas mal de paramêtre dans ma config, le seul qui soit vraiment utile à priori c'est :
key_buffer = 32M

Enfin, tout ça dépend pas mal de ta machine et de l'utilisation que tu comptes en faire... J'ai trouvé un topic intéressant sur un forum :
http://www.theadminzone.com/forums/showthread.php?...Ouvrir dans une nouvelle fenetre

Un autre pas mal, moins clair je trouve :
http://www.interworx.com/forums/showthread.php?p=2...Ouvrir dans une nouvelle fenetre

Mais ça dépend vraiment de l'utilisation qu'on en fait... Si on a de grosses tables, si on en a beaucoup, si on fait des requêtes diversifiées, si on fait beaucoup de jointure ou non, etc.

Florent Clairambault - http://florent.clairambault.frOuvrir dans une nouvelle fenetre
Gtalk : superfc@gmail.com

Rano
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 20/11/2006 à 15:30

Si on a des pointes à 10,000 requetes par secondes...

Ok, merci pour les topics je vais regarder

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

Rano
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 20/11/2006 à 16:15

Les deux topics combinés sont vraiment bien, merci beaucoup.

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

MathieuC
Modérateur

Photo de MathieuC

Inscrit le : 15/07/2005

# Le 20/11/2006 à 16:19

Effectivement, il y a tres peu de docs pour les optimisations pointues

Moi j'ai fait beaucoup de tests, de surveilance, de modif de variables, etc... pour voir comment reagit la machinie sous la charge en fonction des differents parametres.

Tu arrives assez vite a isoler les variables les plus utiles

dob
Modérateur

Photo de dob

Inscrit le : 10/05/2005

# Le 20/11/2006 à 16:28

Merci pour les liens !

Julien TartarinOuvrir dans une nouvelle fenetre
Founder & CTO @ Mailjet.comOuvrir dans une nouvelle fenetre

Bool
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 21/11/2006 à 10:01

Hello,

pour ma part, dans le désordre :
- le bouquin High Performance MySQLOuvrir dans une nouvelle fenetre (et occasionnellement le blog d'un des auteurs du bouquin)
- épluchage de la doc officielle concernant chaque paramètre, les différents moteurs, et les nombreux "conseils" qu'on y trouve
- la page "Etat du serveur" de phpMyAdmin. Bien que pas forcément exhaustive, elle a au moins le mérite de faire pointer quelques valeurs "clés", et donc de savoir où taper dans la doc.
- quelques années "de développement + optimisation" de requêtes sur des systèmes très chargés (Oracle et Informix).

Google is watching you.

krucial
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 06/06/2008 à 00:21

Hop hop, 2 coups de pelle pour un bon gros déterrage de topic. Mais autant tout regrouper ensemble.

Une page sympa qui explique assez clairement le tunning sur certaines valeurs precises.

http://www.databasejournal.com/features/mysql/arti...Ouvrir dans une nouvelle fenetre

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre

Bool
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 06/06/2008 à 00:32

Dans l'élan, une liste d'outils pratiques : http://www.mysqlperformanceblog.com/tools/Ouvrir dans une nouvelle fenetre

(et l'ensemble du site de manière générale est plutôt bien)

Google is watching you.

Geo 113
Modérateur

Photo de Geo 113

Inscrit le : 04/05/2005

# Le 06/06/2008 à 09:31

On pourrait ptet regrouper tous les topics techniques avec des astuces dans le forum "dossiers" ?

Eldael InteractiveOuvrir dans une nouvelle fenetre Ouvert !
Rendez imprévisible l'Economie; Mentez aux sondages

krucial
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 06/06/2008 à 09:33

C'est sur que ca serait le top de faire des topics "résumé" dans dossier.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre

Rano
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 06/06/2008 à 09:38

Ce qui serait top déjà c'est un moteur de recherche utilisable

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

caaptusss
Membre

Photo de caaptusss

Inscrit le : 25/09/2007

# Le 06/06/2008 à 10:45

Rano a dit :
Ce qui serait top déjà c'est un moteur de recherche utilisable


lol

FirstHeberg.comOuvrir dans une nouvelle fenetre | Régie PublicitaireOuvrir dans une nouvelle fenetre | Hébergement GratuitOuvrir dans une nouvelle fenetre

dob
Modérateur

Photo de dob

Inscrit le : 10/05/2005

# Le 06/06/2008 à 11:41

krucial a dit :
Une page sympa qui explique assez clairement le tunning sur certaines valeurs precises.

http://www.databasejournal.com/features/mysql/arti...Ouvrir dans une nouvelle fenetre

Pas mal, sauf quand l'auteur dit qu'on peut augmenter le max_connections sans problème alors que c'est à cause de ça qu'un mysqld peut partir en vrille (le nombre de connexions multiplie la mémoire utilisée, si ça dépasse la mémoire physique, on swap, si ça dépasse en plus le swap, c'est mort).

Julien TartarinOuvrir dans une nouvelle fenetre
Founder & CTO @ Mailjet.comOuvrir dans une nouvelle fenetre

caaptusss
Membre

Photo de caaptusss

Inscrit le : 25/09/2007

# Le 06/06/2008 à 12:15

Exactement ce qui est arrivé ce matin à mon serveur Mysql principal qui a connu une attaque rangé contre 4 des 7 serveurs de Freeheberg. Le maxconnexion a été atteint en plus d'apache qui prenais la blinde de ram, ça a swappé, et le disque a faillit passer en read only.

Heureusement, le monitoring a agit tout seul, il a relancé les softs et blacklisté les ip, durée de l'indispo : 7 mn.

FirstHeberg.comOuvrir dans une nouvelle fenetre | Régie PublicitaireOuvrir dans une nouvelle fenetre | Hébergement GratuitOuvrir dans une nouvelle fenetre

dob
Modérateur

Photo de dob

Inscrit le : 10/05/2005

# Le 06/06/2008 à 12:33

Y'a une formule magique pour dire à MySQL de pas dépasser la RAM disponible, l'outil mysql tuner sur racker hacker l'indique bien.

Pour Apache c'est un chouillas plus complexe puisque ça dépend des scripts PHP (ou autres), faut jouer avec le max requests per child (et surtout pas le laisser à 0 sauf si c'est 100% static)
Edit: la formule magique pour apache: http://modperlbook.org/html/10-1-1-Calculating-Rea...Ouvrir dans une nouvelle fenetre

(Message édité le 06-06-2008 à 12h38 par dob)

Julien TartarinOuvrir dans une nouvelle fenetre
Founder & CTO @ Mailjet.comOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.