IOwait très sollicité pendant l'activité du disque

Je suis en ext3.

14:09 cartman@serveur ~% df Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur /dev/hda2 897M 192M 658M 23% / udev 10M 76K 10M 1% /dev devshm 505M 12K 505M 1% /dev/shm /dev/hda1 89M 14M 71M 16% /boot /dev/hda10 35G 9,2G 24G 28% /home /dev/hda9 9,2G 230M 8,5G 3% /opt /dev/hda7 1,8G 8,1M 1,7G 1% /tmp /dev/hda8 9,2G 2,9G 5,9G 33% /usr /dev/hda5 19G 6,7G 11G 39% /var
Je vais essayer le 2.6.18 mais ça merdouille quand même avec un disque IDE donc je ne pense pas que ça régle grand chose. :confused:

Hum, qu’'as tu comme services dessus, toute ta mémoire soit près de 1G est utilisée au bout de 12mn???

Essaye de bouter en mode single et contentes toi de lancer top en mode single. Regarde si tu as ce même phénomène.

Si tu n’as pas ce phénomène, ça ressemble à une fuite mémoire… As tu un driver propriétaire? Lances tu un service particuiler? Donnes le résultat de

$ ls -l /etc/rc2.d

J’ai un serveur LAMP avec tout ce qui va avec, Postfix, Courier, etc…

14:18 cartman@serveur ~% ls -l /etc/rc2.d total 1,0K -rw-r--r-- 1 root root 556 2006-09-10 17:52 README lrwxrwxrwx 1 root root 18 2006-04-24 04:14 S10sysklogd -> ../init.d/sysklogd* lrwxrwxrwx 1 root root 15 2006-04-24 04:14 S11klogd -> ../init.d/klogd* lrwxrwxrwx 1 root root 15 2006-09-11 08:46 S15bind9 -> ../init.d/bind9* lrwxrwxrwx 1 root root 17 2006-04-24 04:20 S18portmap -> ../init.d/portmap* lrwxrwxrwx 1 root root 23 2006-04-28 13:13 S19mysql-ndb-mgm -> ../init.d/mysql-ndb-mgm* lrwxrwxrwx 1 root root 15 2006-05-16 20:29 S20bwbar -> ../init.d/bwbar* lrwxrwxrwx 1 root root 28 2006-06-02 02:56 S20courier-authdaemon -> ../init.d/courier-authdaemon* lrwxrwxrwx 1 root root 22 2006-06-02 02:56 S20courier-imap -> ../init.d/courier-imap* lrwxrwxrwx 1 root root 16 2006-07-30 20:32 S20cupsys -> ../init.d/cupsys* lrwxrwxrwx 1 root root 14 2006-06-27 07:09 S20dbus -> ../init.d/dbus* lrwxrwxrwx 1 root root 18 2006-07-23 17:14 S20festival -> ../init.d/festival* lrwxrwxrwx 1 root root 17 2006-04-24 05:43 S20hddtemp -> ../init.d/hddtemp* lrwxrwxrwx 1 root root 15 2006-04-24 04:14 S20inetd -> ../init.d/inetd lrwxrwxrwx 1 root root 14 2006-07-24 19:32 S20lisa -> ../init.d/lisa* lrwxrwxrwx 1 root root 13 2006-07-30 19:54 S20lpd -> ../init.d/lpd* lrwxrwxrwx 1 root root 19 2006-09-10 09:43 S20mailgraph -> ../init.d/mailgraph* lrwxrwxrwx 1 root root 15 2006-04-28 13:13 S20mysql -> ../init.d/mysql* lrwxrwxrwx 1 root root 20 2006-09-23 02:23 S20nvidia-glx -> ../init.d/nvidia-glx* lrwxrwxrwx 1 root root 23 2006-09-16 04:58 S20nvidia-kernel -> ../init.d/nvidia-kernel* lrwxrwxrwx 1 root root 23 2006-08-21 00:46 S20openbsd-inetd -> ../init.d/openbsd-inetd* lrwxrwxrwx 1 root root 14 2006-08-30 16:11 S20pdns -> ../init.d/pdns* lrwxrwxrwx 1 root root 17 2006-05-03 01:54 S20postfix -> ../init.d/postfix* lrwxrwxrwx 1 root root 15 2006-05-26 00:35 S20rsync -> ../init.d/rsync* lrwxrwxrwx 1 root root 15 2006-07-17 16:19 S20samba -> ../init.d/samba* lrwxrwxrwx 1 root root 19 2006-08-20 23:27 S20saslauthd -> ../init.d/saslauthd* lrwxrwxrwx 1 root root 23 2006-09-15 19:54 S20smartmontools -> ../init.d/smartmontools* lrwxrwxrwx 1 root root 13 2006-04-24 04:21 S20ssh -> ../init.d/ssh* lrwxrwxrwx 1 root root 17 2006-09-19 03:42 S20sysstat -> ../init.d/sysstat* lrwxrwxrwx 1 root root 19 2006-09-10 05:32 S20tftpd-hpa -> ../init.d/tftpd-hpa* lrwxrwxrwx 1 root root 16 2006-04-24 13:45 S20xprint -> ../init.d/xprint* lrwxrwxrwx 1 root root 17 2006-04-24 04:59 S20zmailer -> ../init.d/zmailer* lrwxrwxrwx 1 root root 13 2006-07-23 16:52 S21fam -> ../init.d/fam* lrwxrwxrwx 1 root root 15 2006-05-22 05:50 S21mydns -> ../init.d/mydns lrwxrwxrwx 1 root root 19 2006-04-28 13:13 S21mysql-ndb -> ../init.d/mysql-ndb* lrwxrwxrwx 1 root root 18 2006-04-24 15:53 S21quotarpc -> ../init.d/quotarpc* lrwxrwxrwx 1 root root 17 2006-04-24 12:26 S50proftpd -> ../init.d/proftpd lrwxrwxrwx 1 root root 14 2006-04-24 04:14 S89cron -> ../init.d/cron* lrwxrwxrwx 1 root root 17 2006-05-01 20:54 S91apache2 -> ../init.d/apache2* lrwxrwxrwx 1 root root 20 2006-09-19 06:24 S98munin-node -> ../init.d/munin-node* lrwxrwxrwx 1 root root 18 2006-09-07 08:46 S99rc.local -> ../init.d/rc.local* lrwxrwxrwx 1 root root 19 2006-04-24 04:13 S99rmnologin -> ../init.d/rmnologin* lrwxrwxrwx 1 root root 23 2006-04-24 04:13 S99stop-bootlogd -> ../init.d/stop-bootlogd*
Je vais tester en mode single. :wink:

Il faudrait en fait que tu laisses tout jusqu’à par exemple S91apache2 inclus. Tu attends une dizaine de mintues et vérifies qu’il n’y a pas le phénomène, puis tu lances munin-node, attente, puis rc.local, attente, puis rmnologin, attente puis stop-bootlogd.

Les suspects sont les trucs ne venant pas de Debian (à priori exempte de fuite mémoire)

Euh comment dois-je faire pour que les services ne se lancent pas automatiquement ? :blush:

man update-rc.d

Bon !!
J’ai coupé les services rc.local, rmnologin, stop-bootlogd sans relancer la machine et la ! miracle mon WA ne monte pas au dessus de 50% alors que je lance plusieurs trucs assez bourrin en même temps (dump MySQL et find de fichier txt)!!

top - 14:53:20 up 1:10, 6 users, load average: 4.50, 3.69, 3.84 Tasks: 157 total, 1 running, 155 sleeping, 0 stopped, 1 zombie Cpu(s): 58.6%us, 5.6%sy, 0.0%ni, 0.0%id, 33.4%wa, 0.3%hi, 2.0%si, 0.0%st

Qui est effectivement une solution. Sinon, pour les tests de manière temporaire:

mkdir /root/tempo

mv /etc/rc2.d/S[ce que tu veux] /root/tempo

Tu les lances à la main après.
Tu reviens à la situation d’origine en faisant

mv /root/tempo/S* /etc/rc2.d

[quote=“goldyfruit”]Bon !!
J’ai coupé les services rc.local, rmnologin, stop-bootlogd sans relancer la machine et la ! miracle mon WA ne monte pas au dessus de 50% alors que je lance plusieurs trucs assez bourrin en même temps (dump MySQL et find de fichier txt)!!

top - 14:53:20 up 1:10, 6 users, load average: 4.50, 3.69, 3.84 Tasks: 157 total, 1 running, 155 sleeping, 0 stopped, 1 zombie Cpu(s): 58.6%us, 5.6%sy, 0.0%ni, 0.0%id, 33.4%wa, 0.3%hi, 2.0%si, 0.0%st [/quote]

donc il y a bien une fuite mémoire et ton noyau y est pour rien (le pauvre).

Lances les services un après l’autre et dis que fait rc.local

J’y comprends rien ! Ca recommence, j’ai bien viré les services cités plus haut pourtant…
J’ai l’impression que c’est MySQL qui est super gourmand !

EDIT : Après le ménage ça donne ceci :

17:31 cartman@serveur ~% ls -l /etc/rc2.d total 1,0K -rw-r--r-- 1 root root 556 2006-09-10 17:52 README lrwxrwxrwx 1 root root 18 2006-04-24 04:14 S10sysklogd -> ../init.d/sysklogd* lrwxrwxrwx 1 root root 15 2006-04-24 04:14 S11klogd -> ../init.d/klogd* lrwxrwxrwx 1 root root 15 2006-09-11 08:46 S15bind9 -> ../init.d/bind9* lrwxrwxrwx 1 root root 17 2006-04-24 04:20 S18portmap -> ../init.d/portmap* lrwxrwxrwx 1 root root 23 2006-04-28 13:13 S19mysql-ndb-mgm -> ../init.d/mysql-ndb-mgm* lrwxrwxrwx 1 root root 15 2006-05-16 20:29 S20bwbar -> ../init.d/bwbar* lrwxrwxrwx 1 root root 28 2006-06-02 02:56 S20courier-authdaemon -> ../init.d/courier-authdaemon* lrwxrwxrwx 1 root root 22 2006-06-02 02:56 S20courier-imap -> ../init.d/courier-imap* lrwxrwxrwx 1 root root 16 2006-07-30 20:32 S20cupsys -> ../init.d/cupsys* lrwxrwxrwx 1 root root 14 2006-06-27 07:09 S20dbus -> ../init.d/dbus* lrwxrwxrwx 1 root root 18 2006-07-23 17:14 S20festival -> ../init.d/festival* lrwxrwxrwx 1 root root 17 2006-04-24 05:43 S20hddtemp -> ../init.d/hddtemp* lrwxrwxrwx 1 root root 13 2006-07-30 19:54 S20lpd -> ../init.d/lpd* lrwxrwxrwx 1 root root 19 2006-09-10 09:43 S20mailgraph -> ../init.d/mailgraph* lrwxrwxrwx 1 root root 15 2006-04-28 13:13 S20mysql -> ../init.d/mysql* lrwxrwxrwx 1 root root 20 2006-09-23 02:23 S20nvidia-glx -> ../init.d/nvidia-glx* lrwxrwxrwx 1 root root 23 2006-09-16 04:58 S20nvidia-kernel -> ../init.d/nvidia-kernel* lrwxrwxrwx 1 root root 23 2006-08-21 00:46 S20openbsd-inetd -> ../init.d/openbsd-inetd* lrwxrwxrwx 1 root root 17 2006-05-03 01:54 S20postfix -> ../init.d/postfix* lrwxrwxrwx 1 root root 15 2006-05-26 00:35 S20rsync -> ../init.d/rsync* lrwxrwxrwx 1 root root 15 2006-07-17 16:19 S20samba -> ../init.d/samba* lrwxrwxrwx 1 root root 19 2006-08-20 23:27 S20saslauthd -> ../init.d/saslauthd* lrwxrwxrwx 1 root root 23 2006-09-15 19:54 S20smartmontools -> ../init.d/smartmontools* lrwxrwxrwx 1 root root 13 2006-04-24 04:21 S20ssh -> ../init.d/ssh* lrwxrwxrwx 1 root root 17 2006-09-19 03:42 S20sysstat -> ../init.d/sysstat* lrwxrwxrwx 1 root root 19 2006-04-28 13:13 S21mysql-ndb -> ../init.d/mysql-ndb* lrwxrwxrwx 1 root root 18 2006-04-24 15:53 S21quotarpc -> ../init.d/quotarpc* lrwxrwxrwx 1 root root 14 2006-04-24 04:14 S89cron -> ../init.d/cron* lrwxrwxrwx 1 root root 17 2006-05-01 20:54 S91apache2 -> ../init.d/apache2* lrwxrwxrwx 1 root root 20 2006-09-19 06:24 S98munin-node -> ../init.d/munin-node*
J’ai laissé :

Car ça le faisait avant que je l’installe.

Tu peux essayer la méthode inverse:

Tu mets tout et tu regardes en faisant

/etc/init.d/mysql-ndb stop

pour voir si ça arrange les choses mais vérifies via top qu’aucun processus ne reste…

Tu n’as pas essayé par top ou ps de voir si un processus bouffait toute la mémoire?

(tu lances top et tu tapes «m» par exemple)

[code]top - 18:05:32 up 40 min, 4 users, load average: 6.26, 17.38, 17.22
Tasks: 201 total, 1 running, 199 sleeping, 0 stopped, 1 zombie
Cpu(s): 21.3%us, 6.0%sy, 0.0%ni, 0.0%id, 70.8%wa, 0.7%hi, 1.3%si, 0.0%st
Mem: 1034164k total, 994900k used, 39264k free, 69004k buffers
Swap: 1461872k total, 164232k used, 1297640k free, 340768k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10165 mysql 15 0 150m 37m 5420 S 11.3 3.7 0:29.49 mysqld
10858 proftpd 15 0 68468 13m 7524 S 5.6 1.4 0:00.27 apache2
11609 proftpd 15 0 64748 10m 6304 S 2.0 1.0 0:00.07 apache2
2638 root 17 0 3800 1528 1288 S 0.7 0.1 0:02.33 split-logfile[/code]
Au bout de quelques minutes MySQL prend passe à 30 pour %MEM.
Tout ça comme à me gonfler, je sent que je vais avoir le reflexe Windowsien…

Y-a-t-il beaucoup de données? Mysql utilise chez moi en gros 28M + 1M par thread. Là question est de savoir si ça augmente au fur et à mesure et pourquoi mysql a besoin de 150M jusqu’ 1.5G (si j’ai bien compris)!!! ça me parait beaucoup… Y-avait-il ce pbm avec mysql 4 (que j’utilise) et sinon pourquoi passer à mysql5 (moins stable)???

[edit: va voir ce lien: http://dev.mysql.com/doc/refman/5.0/fr/memory-use.html]

J’ai un peu plus de 2200 bases de données.
Je n’ai utilisé MySQL 4x que très peu de temps et pour un seul site.
Je tourne sur MySQL 5 quasiment depuis 1 an maintenant et je n’avais jamais eu de problème.

Ah oui… On ne joue pas du tout dans la même cours :slightly_smiling:, alors c’est peut être normal une large utilisation de la mémoire. Il faut dans ce cas attendre un peu plus longtemps et regarder si la mémoire gonfle régulièrement (signe de fuite mais j’y crois moins du coup). Tu devrais peut être rajouter de la mémoire vive, je penche de plus en plus pour mysql qui swappe par besoin de mémoire. Sous Windows tu auras le même problème je pense. A ce stade tu pourrais aussi essayer de rajouter un disque même petit pour le swap afin qu’il n’y ait pas des allers/retours permanents du bras…

[edit: Les petites différences que tu voyais entre les différents noyaux viennent surement des variations de gestion de la VM]

Ben en faisant des recherches sur les IOwait je suis tombé sur un post parlant de VMstats mais le man ne ma pas éclairé…
C’est bien de cela que tu parles quand tu dis VM ?
Sinon si je place le serveur sur un serveur à part avec 1 Go de ram ça peut réoudre le problème ?

La mémoire se remplis toutes seule petit à petit.
J’ai relancé le système il y a 8 minutes :

19:16 cartman@serveur ~% free -m total used free shared buffers cached Mem: 1009 993 16 0 44 368 -/+ buffers/cache: 580 429 Swap: 1427 5 1421
Y’a quand même un problème la non ?

Que la mémoire soit complètement rempli, c’est normal. Que du swap soit utilisé c’est normal, tu dois avoir des processus dormants qui vont se retrouver dans le swap au premier appel un peu gros à Mysql. Par contre, ce qui serait anormal serait que au bout d’un temps (un peu long), tout le swap soit quasiment pris. Remarque: Si tu constates de la mémoire vive libre et du swap pris c’est normal: mysql qui a eu un gros besoin de RAM puis qui l’a libéré, les processus qui dormaient continuent à dormir et restent dans le swap… dans ce cas, la RAM se remplit de «cache» disque. Cela peut même conduire à la situation toute la RAM et tout le swap pris.

VM = virtual memory = RAM +Swap. La gestion de la VM est un des points sensibles des OS. vmstat effectivement permet d’avoir une idée de son occupation, il doit y avoir d’autres utilitaires plus conviviaux…

Que donne

$ vmstat ?

[quote=“goldyfruit”]
Sinon si je place le serveur sur un serveur à part avec 1 Go de ram ça peut réoudre le problème ?[/quote]

Hum regarde le % des autres processus, ça a l’air négligeable donc tu risques de retrouver le même pbm.

[edit: 2 outils qui peuvent t’intéresser: memstat et memprof]

20:41 cartman@serveur ~% vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 3 15 344324 52620 43176 240260 160 206 1702 998 1761 1718 34 10 10 46
Je vais jetter un oeil sur ces deux outils.
En tout cas merci de ton aide.

Bon, tu as 240M de cache, 3 processus actifs et 15 dormants. 52M de mémoirelibre (autant dire pas gd chose mais quand même). Tu as effectivement beaucoup de transfert mémoire swap<->RAM (si et so), en gros au total 460K/s, ça me parait pas mal… Du coup tu as 10% de temps CPU consacré au système ce qui me parait cohérent. Tu utilises 344M de swap, essayes peut être d’installer memstat. Ça te donne la mémoire utilisée effectivement par chaque processus (les threads sont répétés alors qu’ils utilisent la même mémoire je pense). Tu pourras voir si mysql a sa part qui grossit régulièrement. Sinon apparemment une RAM de 2G devrait régler ton problème. Mais demande un autre avis, je n’ai jamais eu à faire à ce genre de soucis, mes serveurs n’ayant jamais une telle charge donc même si je ne le pense pas, mon diagnostic est peut être erroné…

$ memstat | grep mysql