Comment Vider la RAM

Le
c-note
Bonjour a tous,

j'ai un programme (SGBD) qui tourne et utilise presque toutes la RAM
dispo sur mon serveur.

Mem: 3354852K av, 3236376K used, 118476K free, 0K shrd, 30408K buff

Lorsque ce programme termine son execution la RAM n'est pas vider.

J'ai un deuxiemme programme qui se lance et ne dispose pas d'assez de
RAM. Du coup, le systeme (kernel 2.4) tue certain service (snmpd, sshd)
au hasard pour liberer de la RAM.

Idealement, je souhaiterais vider la RAM apres l'execution du premier
programme.

Est-ce possible ?

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 4
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Arol
Le #1887068
"c-note" a écrit dans le message de news:
J'ai un deuxiemme programme qui se lance et ne dispose pas d'assez de
RAM. Du coup, le systeme (kernel 2.4) tue certain service (snmpd, sshd)
au hasard pour liberer de la RAM.


uh ?

T'es sur de ce que tu dis ?

c-note
Le #1887064
"c-note" a écrit dans le message de news:
J'ai un deuxiemme programme qui se lance et ne dispose pas d'assez de
RAM. Du coup, le systeme (kernel 2.4) tue certain service (snmpd, sshd)
au hasard pour liberer de la RAM.


uh ?

T'es sur de ce que tu dis ?




Oui je suis sur. Sauf qu'il arrive que les 2 programmes se chevauchent.
C'est a dire qu'il arrive que le programme 2 se lance alors que le
programme 1 n'est pas terminer (Ce qui est normal)

Ces 2 prog sont independants l'un de l'autre.


c-note
Le #1887063
Arol -
uh ?
T'es sur de ce que tu dis ?


C'est reproductible (ou presque) en faisant un "swapoff -a" quand la swap
est utilisée ;-)



Le SWAp n'est pas sollicité.

Mem: 3354852K av, 3234940K used, 119912K free, 0K shrd, 13924K buff
Swap: 2048276K av, 780K used, 2047496K free 3022920K cached


Nicolas George
Le #1887062
c-note wrote in message
Lorsque ce programme termine son execution la RAM n'est pas vider.


Non, c'est faux. Si la RAM est encore occupée, c'est que le programme est
encore là, au moins en partie.

Mihamina (R12y) Rakotomandimby
Le #1887061
c-note -
Lorsque ce programme termine son execution la RAM n'est pas vider.
J'ai un deuxiemme programme qui se lance et ne dispose pas d'assez de
RAM. Du coup, le systeme (kernel 2.4) tue certain service (snmpd, sshd)
au hasard pour liberer de la RAM.


Je ne connais pas exactement comment le noyau gère la RAM, mais
indépendament de cela, si il (le noyau) ne sait pas récupérer la RAM
utilisée par un programme mort (MySQL dans ton cas) je ne vois pas en quoi
en tuer d'autres l'avancerait (il ne sait de toutes façons pas en récuperer
la RAM libérée...). Tu vois le truc?

De plus, en général, c'est le programm qui se lance qui se plaint de ne pas
avoir assez de RAM et du coup refuse de se lancer. C'est le cas avec Xen,
par exemple. Si la "vraie RAM" (il ne veut pas comptabiliser la swap) n'est
pas suffisante, il ne se lance pas et explique bien que c'est parcequ'il
n'y a pas assez de RAM.

Moi je pense que tes barettes de RAM sont defectueuses.

Sinon, ça nous aurait beaucoup aidé à te répondre de nous dire quelle est
l'application que tu lances et qui a besoin de beaucoup de RAM.

c-note
Le #1887060
c-note -
Lorsque ce programme termine son execution la RAM n'est pas vider.
J'ai un deuxiemme programme qui se lance et ne dispose pas d'assez de
RAM. Du coup, le systeme (kernel 2.4) tue certain service (snmpd, sshd)
au hasard pour liberer de la RAM.


Je ne connais pas exactement comment le noyau gère la RAM, mais
indépendament de cela, si il (le noyau) ne sait pas récupérer la RAM
utilisée par un programme mort (MySQL dans ton cas) je ne vois pas en quoi
en tuer d'autres l'avancerait (il ne sait de toutes façons pas en récuperer
la RAM libérée...). Tu vois le truc?

De plus, en général, c'est le programm qui se lance qui se plaint de ne pas
avoir assez de RAM et du coup refuse de se lancer. C'est le cas avec Xen,
par exemple. Si la "vraie RAM" (il ne veut pas comptabiliser la swap) n'est
pas suffisante, il ne se lance pas et explique bien que c'est parcequ'il
n'y a pas assez de RAM.

Moi je pense que tes barettes de RAM sont defectueuses.

Sinon, ça nous aurait beaucoup aidé à te répondre de nous dire quelle est
l'application que tu lances et qui a besoin de beaucoup de RAM.
programme 1 : sauvegarde de base (pgsql)

programme 2 : insertion dans la base des données (la vie continue).

Evidement je ne peux pas me permettre de verouiller la base pendant la
sauvegarde.


Mihamina (R12y) Rakotomandimby
Le #1887059
Arol -
uh ?
T'es sur de ce que tu dis ?


C'est reproductible (ou presque) en faisant un "swapoff -a" quand la swap
est utilisée ;-)

c-note
Le #1887058
c-note wrote in message
Lorsque ce programme termine son execution la RAM n'est pas vider.


Non, c'est faux. Si la RAM est encore occupée, c'est que le programme est
encore là, au moins en partie.
Pas exactement. Un contre exemple : quitter un prog C sans faire un free

proportionnel au malloc !

Peut-etre que je me trompe ?


Nicolas George
Le #1887057
c-note wrote in message
Pas exactement. Un contre exemple : quitter un prog C sans faire un free
proportionnel au malloc !

Peut-etre que je me trompe ?


Tu te trompes. Quand un programme se termine, toutes les ressources qu'il
utilisait sont libérées, c'est le cas sous n'importe quel OS sérieux.

Il y a quelques exceptions :

- IPC BSD, parce que c'est une API à chier ;

- fichiers temporaires, parce qu'il n'y a pas de moyen d'indiquer dès le
départ leur durée de vie souhaitée ;

- ressources occupées auprès d'un programme tiers mal programmé.

Thierry Boudet
Le #1887056
On 2007-05-29, c-note

Mem: 3354852K av, 3236376K used, 118476K free, 0K shrd, 30408K buff

Lorsque ce programme termine son execution la RAM n'est pas vider.

Tu es sur qu'il est bien terminé, qu'il ne reste pas un

processus en background pour, par exemple, cloturer les
bases de données ?

Idealement, je souhaiterais vider la RAM apres l'execution du premier
programme.

Est-ce possible ?


Le même phénomène se produit-il en ajoutant de la swap ?


--
--{ http://tboudet.free.fr/ }--

Publicité
Poster une réponse
Anonyme