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.
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
Alors je penche encore plus vers un problème matériel. Avant de se plaindre et de tuer des process, il devrait utiliser la swap.
Denis Beauregard
Le 29 May 2007 16:27:33 GMT, Nicolas George <nicolas$ écrivait dans fr.comp.os.linux.configuration:
c-note wrote in message <f3hjdi$3v$:
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é.
Pourtant, il me semble que la mémoire est gérée par 2 systèmes différents. D'un côté, les appels au bios et de l'autre, ceux au noyau Linux. Si une application a été mal portée dans Linux, il se peut qu'il reste des appels au bios, quoique ce ne soit pas très habituel sans doute.
Denis
Le 29 May 2007 16:27:33 GMT, Nicolas George
<nicolas$george@salle-s.org> écrivait dans
fr.comp.os.linux.configuration:
c-note wrote in message <f3hjdi$3v$2@biggoron.nerim.net>:
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é.
Pourtant, il me semble que la mémoire est gérée par 2 systèmes
différents. D'un côté, les appels au bios et de l'autre, ceux au
noyau Linux. Si une application a été mal portée dans Linux, il
se peut qu'il reste des appels au bios, quoique ce ne soit pas
très habituel sans doute.
Le 29 May 2007 16:27:33 GMT, Nicolas George <nicolas$ écrivait dans fr.comp.os.linux.configuration:
c-note wrote in message <f3hjdi$3v$:
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é.
Pourtant, il me semble que la mémoire est gérée par 2 systèmes différents. D'un côté, les appels au bios et de l'autre, ceux au noyau Linux. Si une application a été mal portée dans Linux, il se peut qu'il reste des appels au bios, quoique ce ne soit pas très habituel sans doute.
Denis
Pascal Hambourg
Salut,
C'est reproductible (ou presque) en faisant un "swapoff -a" quand la swap est utilisée ;-)
Ce n'est pas comparable. D'un côté, on essaie d'allouer de la mémoire qu'on n'a pas. De l'autre, on retire de la mémoire qui était occupée.
Salut,
C'est reproductible (ou presque) en faisant un "swapoff -a" quand la swap
est utilisée ;-)
Ce n'est pas comparable. D'un côté, on essaie d'allouer de la mémoire
qu'on n'a pas. De l'autre, on retire de la mémoire qui était occupée.
Eventuellement des bouts de stack ip (SO_REUSE, toussa) </>
-- As Snow White said to Pinocchio, "Tell a lie! Tell the truth! Tell a lie! Tell the truth!..."
Pascal Hambourg
c-note - <f3hj1a$319u$ :
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
Alors je penche encore plus vers un problème matériel.
Qu'est-ce qui te fait penser ça ?
Avant de se plaindre et de tuer des process, il devrait utiliser la swap.
Avant d'utiliser le swap, il devrait songer à récupérer une partie de la mémoire occupée par du cache, étant donné qu'ici c'est apparemment le cache qui occupe la plus grande partie de la mémoire (~3 Go sur 3,4 Go). Dans ces circonstances, l'hypothèse du manque de mémoire me paraît très suspecte.
c-note - <f3hj1a$319u$2@biggoron.nerim.net> :
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
Alors je penche encore plus vers un problème matériel.
Qu'est-ce qui te fait penser ça ?
Avant de se plaindre et de tuer des process, il devrait utiliser la swap.
Avant d'utiliser le swap, il devrait songer à récupérer une partie de la
mémoire occupée par du cache, étant donné qu'ici c'est apparemment le
cache qui occupe la plus grande partie de la mémoire (~3 Go sur 3,4 Go).
Dans ces circonstances, l'hypothèse du manque de mémoire me paraît très
suspecte.
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
Alors je penche encore plus vers un problème matériel.
Qu'est-ce qui te fait penser ça ?
Avant de se plaindre et de tuer des process, il devrait utiliser la swap.
Avant d'utiliser le swap, il devrait songer à récupérer une partie de la mémoire occupée par du cache, étant donné qu'ici c'est apparemment le cache qui occupe la plus grande partie de la mémoire (~3 Go sur 3,4 Go). Dans ces circonstances, l'hypothèse du manque de mémoire me paraît très suspecte.
Pascal Hambourg
Pourtant, il me semble que la mémoire est gérée par 2 systèmes différents. D'un côté, les appels au bios et de l'autre, ceux au noyau Linux.
Euh, des appels BIOS sous Linux ?
Pourtant, il me semble que la mémoire est gérée par 2 systèmes
différents. D'un côté, les appels au bios et de l'autre, ceux au
noyau Linux.
Pourtant, il me semble que la mémoire est gérée par 2 systèmes différents. D'un côté, les appels au bios et de l'autre, ceux au noyau Linux.
Euh, des appels BIOS sous Linux ?
Mihamina (R12y) Rakotomandimby
Pascal Hambourg - <f3hr88$2vt$ :
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 Alors je penche encore plus vers un problème matériel.
Qu'est-ce qui te fait penser ça ?
Le fait que je pense aux deux questions que je pose plus bas, mais sans avoir de réponse rigoureuses.
Avant de se plaindre et de tuer des process, il devrait utiliser la swap. Avant d'utiliser le swap, il devrait songer à récupérer une partie de la
mémoire occupée par du cache
- Qu'est-il censé ce passer si la partie physique de/des barette(s) sur lesquelles se trouvaient ce cache sont defectueuses? - Est-ce que le noyau "defragmente" ce qui se trouve en RAM (genre: y a une grosse usine qui se pointe, je pousse un peu ce que j'ai déjà pour lui laisser un gros bloc)? Accessoirement, est-ce que les RAM actuelles ont encore besoin d'etre rafraichies?
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
Alors je penche encore plus vers un problème matériel.
Qu'est-ce qui te fait penser ça ?
Le fait que je pense aux deux questions que je pose plus bas, mais sans
avoir de réponse rigoureuses.
Avant de se plaindre et de tuer des process, il devrait utiliser la swap.
Avant d'utiliser le swap, il devrait songer à récupérer une partie de la
mémoire occupée par du cache
- Qu'est-il censé ce passer si la partie physique de/des barette(s) sur
lesquelles se trouvaient ce cache sont defectueuses?
- Est-ce que le noyau "defragmente" ce qui se trouve en RAM (genre: y a une
grosse usine qui se pointe, je pousse un peu ce que j'ai déjà pour lui
laisser un gros bloc)? Accessoirement, est-ce que les RAM actuelles ont
encore besoin d'etre rafraichies?
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 Alors je penche encore plus vers un problème matériel.
Qu'est-ce qui te fait penser ça ?
Le fait que je pense aux deux questions que je pose plus bas, mais sans avoir de réponse rigoureuses.
Avant de se plaindre et de tuer des process, il devrait utiliser la swap. Avant d'utiliser le swap, il devrait songer à récupérer une partie de la
mémoire occupée par du cache
- Qu'est-il censé ce passer si la partie physique de/des barette(s) sur lesquelles se trouvaient ce cache sont defectueuses? - Est-ce que le noyau "defragmente" ce qui se trouve en RAM (genre: y a une grosse usine qui se pointe, je pousse un peu ce que j'ai déjà pour lui laisser un gros bloc)? Accessoirement, est-ce que les RAM actuelles ont encore besoin d'etre rafraichies?
Mihamina (R12y) Rakotomandimby
Pascal Hambourg - <f3hquk$2og$ :
C'est reproductible (ou presque) en faisant un "swapoff -a" quand la swap est utilisée ;-) Ce n'est pas comparable. D'un côté, on essaie d'allouer de la mémoire
qu'on n'a pas. De l'autre, on retire de la mémoire qui était occupée.
Attends. Le P.O. dit que le fait de lancer l'usine à gaz tue "certains" process parcequ'ils leur "piquent" leur RAM. Je ne pense pas que ce soit vraiment ce qui se passe, mais si c'était le cas, le "gros" a "retiré de la mémoire qui était occupée" par "certains".
C'est reproductible (ou presque) en faisant un "swapoff -a" quand la swap
est utilisée ;-)
Ce n'est pas comparable. D'un côté, on essaie d'allouer de la mémoire
qu'on n'a pas. De l'autre, on retire de la mémoire qui était occupée.
Attends.
Le P.O. dit que le fait de lancer l'usine à gaz tue "certains" process
parcequ'ils leur "piquent" leur RAM. Je ne pense pas que ce soit vraiment
ce qui se passe, mais si c'était le cas, le "gros" a "retiré de la mémoire
qui était occupée" par "certains".
C'est reproductible (ou presque) en faisant un "swapoff -a" quand la swap est utilisée ;-) Ce n'est pas comparable. D'un côté, on essaie d'allouer de la mémoire
qu'on n'a pas. De l'autre, on retire de la mémoire qui était occupée.
Attends. Le P.O. dit que le fait de lancer l'usine à gaz tue "certains" process parcequ'ils leur "piquent" leur RAM. Je ne pense pas que ce soit vraiment ce qui se passe, mais si c'était le cas, le "gros" a "retiré de la mémoire qui était occupée" par "certains".