Connaisseurs(ses) bdd MySql Innodb ?

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

Connaisseurs(ses) bdd MySql Innodb ?

Messagepar boblefou » 06 Oct 2006 14:52

Bonjour a tous,
Depuis environ 4 mois, j'ai un serveur Mandriva 2006 dédié à une bdd MySql 5.x avec une très grosse base de données Innodb.

Tout se passe très très bien, mais, il y a toujours un mais, mon serveur commence à swapper doucement mais surrement.

J'aimerais savoir s'il existe une commande pour vider la mémoire tampon ( le buffer pool ).

Cela fait 2 jours que je cherche et rien. Je ne peux pas redémarrer le service mysql (trop d'utilisateurs connectés) et un FLUSH LOGS, ne vide que les fichiers de log...

Merci d'avance.
boblefou
Aspirant
Aspirant
 
Messages: 107
Inscrit le: 07 Déc 2004 10:32
Localisation: Annecy

Messagepar arapaho » 06 Oct 2006 16:35

Je n'ai pas la réponse à ta question, seulement quelques pistes.

Clairement, la gestion mémoire de Mysql laisse à désirer. Certains mysqladmins désactivent carrément le swap sur des serveurs de productions chargés [uniquement si ce sont des serveurs dédiés à Mysql].
Les tables temporaires peuvent également être source d'emm.erdes.

Sinon, pour arrêter d'incriminer ce pseudo SGBDR, soit ton serveur commence à ne pas avoir assez de mémoire vive, soit il peut s'agir d'un truc mal configuré. Si tu es sur un noyau 2.4.x, certaines releases étaient exagérément ravageuses sur le swap, je ne me rappelle plus quelles versions. Mais il serait, dans ce cas, opportun de passer sur une série 2.6.x
Il se peut aussi, qu'en plus d'utiliser Mysql, tu ais la malchance que l'application qui s'interface avec exécute mal ses requêtes ...
No One Will Ever Need More Than 640K Ram - Bill Gates, 1981
Avatar de l’utilisateur
arapaho
Amiral
Amiral
 
Messages: 1119
Inscrit le: 18 Avr 2002 00:00
Localisation: Genève

Messagepar tomtom » 06 Oct 2006 19:11

Avé,

Je ne connais pas de commande magique pour vider un tampon en cours d'execution, mais si sa taille est optimisée, ça ne devrait pas poser de problème (sous reserve aussi que la mémoire soit adaptée à la dimmension de la base).
Quelques pistes interessantes ici : http://mysql.speedbone.de/doc/refman/5. ... uning.html

t.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar Walkyrie_II » 06 Oct 2006 20:59

Va voir aussi sur le forum france de MySQL, il y a de bons utilisateurs.

http://mysql.ifrance.com/

nb : Je suis etonné que tu ais beaucoup de connexions, tu l'utilise en mode client/serveur ? ou N/Tiers.
Si c'est N/Tiers comme backoffice de site web, il y a un problème avec les connexiond persistances non fermées
Walkyrie_II
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 179
Inscrit le: 04 Fév 2006 21:33
Localisation: Paris

Messagepar boblefou » 09 Oct 2006 13:58

Je suis en mode client serveur. Mias mes clients ont une application sous Ms Access ( suite d'une migration bdd access vers Mysql...).

Pour ce qui est du noyau, je suis en 2.6.

Effectivement, il y a mieux qu'une application Access qui se connecte à Mysql via pilote MyOdbc, mais ca, je ne peux rien y faire pour le moment.

Je viens de faire quelques tests sur machine de test et effectivement, un arrêt et un redémarrage du service mysql vide bien la mémoire tampon. Je crois que je n'est pas trop le choix. Je vais devoir arrêter mes utilisateurs 10min...ce n'est pas la mort !

Merci beaucoup à tous !
boblefou
Aspirant
Aspirant
 
Messages: 107
Inscrit le: 07 Déc 2004 10:32
Localisation: Annecy

Messagepar Walkyrie_II » 10 Oct 2006 10:23

Cela veut dire que chaque connexion ODBC génére une connexion mysql avec un account
Mais ces connexions n'ont plus d'activité au bout d'un moment ? et elle ne se deconnecte pas ?

Si c'est ca tu peux commencer par limiter le nombre de connexion a la base et voir les parametres serveur comme

max_user_connections
max_connections
flush_time

http://dev.mysql.com/doc/refman/5.0/fr/ ... ables.html

Sinon tu peux verifier les parametres du connecteur ODBC s'il n'y a pas un timeout de connexion.
Walkyrie_II
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 179
Inscrit le: 04 Fév 2006 21:33
Localisation: Paris

Messagepar boblefou » 10 Oct 2006 15:46

Au niveau de mes paramètres, effectivement, je n'ai pas de timeout...mes clients peuvent rester connectés autant de temps qu'ils le désirent, ce qui n'est pas forcement optimale, mais le client est roi...

Bref, pour ce qui est du reste des paramètres, j'ai fais et refais mes calculs en fonction des indications données par Mysql au sujet d'innodb, c'est a dire que la calcul :

innodb_buffer_pool_size
+ key_buffer
+ max_connections
+ ( sort_buffer x read_buffer_size )
+ max_connections

doit être inférieur à 80% de la mémoire RAM du serveur.

Dans mon cas, le calcul donne a peu près 1500 pour 2Go de RAM ce qui est inférieur au 80%...
boblefou
Aspirant
Aspirant
 
Messages: 107
Inscrit le: 07 Déc 2004 10:32
Localisation: Annecy

Messagepar boblefou » 16 Oct 2006 11:05

Bon si cela peu servir a quelqu'un dans le même cas que moi, vendredi midi, j'ai réalisé un redémarrage du service mysql.
Résultat, le buffer a bien été vidé.

Mon swap est revenu à la normale et j'ai revu a la baisse mes valeur.
http://www.networkontrol.net/
Mini itx / SME Server /
boblefou
Aspirant
Aspirant
 
Messages: 107
Inscrit le: 07 Déc 2004 10:32
Localisation: Annecy


Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron