yo! tous,
C’est toujours un problème de savoir où poster ce genre de question. Bon, pour aujourd’hui ça sera dans WebDev :P)
Mon problème :
J’ai deux machines sous Linux avec MySQL dessus :
-
Linux Kernel 2.6 et MySQL 12.22 Distrib 4.0.20 (machine bi-proc, 2 Go RAM, Suse)
-
Linux kernel 2.4 et MySQL 12.22 Distrib 4.0.22 (mono-proc, 512 Mo RAM, Debian)
Sur la première machine, la commande top m’indique deux process concernant MySQL : mysqld_safe (1 Mo) et mysqld (38 Mo)
Sur la seconde machine, j’ai un mysqld_safe de 1 Mo et 10 (dix) mysqld de 12 Mo chacun !! Ce qui me fait un total de 120 Mo de RAM alors que je n’ai pas lancé une seule requête… Précision : sur cette machine je n’ai rien d’autre qui tourne (notamment pas d’Apache).
Quelqu’un aurait une explication ?
Thx
Antoine
Euh Query Cache qui prend de la mémoire?
[quote name=’[PERE]Cil’ date=’ 6 Jul 2005, 16:17’]Euh Query Cache qui prend de la mémoire?
[right][post=“374992”]<{POST_SNAPBACK}>[/post][/right][/quote]
Vivi, je n’ai pas de problème avec ça. Je suis même très content qu’il existe :P)
Ce que je ne comprends pas c’est pourquoi sur une machine j’ai deux process pour un total de 39 Mo de RAM et sur une autre j’ai 11 process pour 120 Mo de RAM.
Sachant que la première machine est un serveur web (Apache/PHP) qui tourne à plein régime et que la seconde machine est juste en cours d’installation/configuration et que rien ne tourne dessus… J’ai attrapé perplexe.
L’idée qui me vient en premier serait la version du kernel. Le passage de la 2.4 à la 2.6 a apporté, si je me souviens bien, une grosse évolution au niveau des process et threads. Ce qui pourrait expliquer que la 2.6 tourne à deux process et la 2.4 à 11 process.
Ou pas :P)
Antoine
Huum moi j’aurais tendance a dire « mets a jour en mysql 4.1 » mais tu vas avoir des merdes d’authentification entre mysql et php (meme si y a un workaround, c’est penible.
T’as essaye d’arreter mysqld pour voir?
LoneWolf
Bizarre autant qu’etrange 
[quote name=‹ LoneWolf › date=’ 6 Jul 2005, 18:30’]Huum moi j’aurais tendance a dire « mets a jour en mysql 4.1 » mais tu vas avoir des merdes d’authentification entre mysql et php (meme si y a un workaround, c’est penible.
T’as essaye d’arreter mysqld pour voir?
LoneWolf
Bizarre autant qu’etrange 
[right][post=« 375022 »]<{POST_SNAPBACK}>[/post][/right][/quote]
Alors la 4.1, outre les problèmes d’authentification, nous offre aussi des modifications sur le format des timestamp comme expliqué ici. Néanmoins, c’est une solution à envisager.
J’ai farfouillé un peu partout sur le net et j’en reste tout autant perplexe. La commande top m’affiche 9 process mysqld dont 1 est le père de tous les autres. Y aussi un mysqld_safe qui n’a aucun lien de parenté avec les mysqld.
Avec la commande ps c’est tout pareil.
Maintenant, il semblerait qu’il y ait une histoire de threads au sein de MySQL (voir ici). Ce que je ne pige pas c’est top et ps affichent les process. Dans ps on peut voir en prime les threads avec le flag -m.
Or ps -ax et ps -amx me retournent la même chose : 9 mysqld.
Traduction : ce sont bien des process mysqld qui tournent et non pas des threads.
Mais pourquoi ?
Et pourquoi sur mon autre linux (2.6) j’ai un seul mysqld ???
Antoine
J’ai jamais eu plusieurs processus pour mysqld, mais en meme temps, j’ai peut etre pas fait gaffe. Tu as le probleme sur une debian, donc regarde bien les documents dans /usr/share/doc/mysql*. Il est tres probable que l’explication soit la.
LoneWolf
Reflexe de base sous debian! 
[quote name=‘LoneWolf’ date=’ 6 Jul 2005, 20:14’]J’ai jamais eu plusieurs processus pour mysqld
[right][post=“375030”]<{POST_SNAPBACK}>[/post][/right][/quote]
Perso j’ai tjs eu plusieurs processus pour mysqld.
J’ai encore du drôle à vous raconter…
Je me suis dit que plusieurs processes, pourquoi pas, c’est un pool d’avance pour les connexions qui vont arriver.
Quand même, afin d’en avoir le coeur net, j’ai fait un ptit test :
- une session SSH, MySQL Server lancé, 10 mysqld au top
- une autre SSH et je lance un client mysql
Résultat au top : 11 mysqld !!!
Alors ils servent à quoi ces $^p*ù#!!! de mysqld lancés par défaut !!!
(Ca m’éneeeeeeeeeeerve)
Antoine
Du calme
C’est des processus fils (fork), ils sont pas vraiment en train de te bouffer toute la memoire que tu semble croire.
La par exemple, j’ai ca sur mon serveur @ home :
[quote]db 31486 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:05 /opt/IBMJava2-142/jre/bin/java […]
db 31487 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31488 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31489 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31490 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31491 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31492 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31494 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:07 /opt/IBMJava2-142/jre/bin/java […]
db 31496 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31497 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31500 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31501 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31504 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31506 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31507 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […]
db 31510 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:01 /opt/IBMJava2-142/jre/bin/java […]
db 31511 0.0 8.6 254444 43384 ttyp7 S+ 05:06 0:00 /opt/IBMJava2-142/jre/bin/java […][/quote]
Donc on lit 8.6%, mais c’est pas 8.6% de memoire pour chaque processus. 