Page 1 sur 1

[Mémoire] Fuite de mémoire?[Résolu]

Publié : mar. 02 sept. 2008, 23:57
par toto
Salut,

J'ai kdemod3, firefox et superkaramba d'installer et d'utiliser sur mon ordi. Au démarrage j'ai 300MB d'utiliser. Je navigue un peu et chemin fessant, j'ai 1Gb d'utiliser! Je ferme ma session et je la relance, toujours 1Gb, je ferme X et j'ai toujours 1Gb d'utiliser alors qu'il n'y a plus aucune application d'ouverte, juste moi et mon terminal... Et avec top je ne trouve rien qui mange ma mémoire.

Si vous ne connaissez pas la solution à mon problème, je voudrais au moins un programme qui libère la RAM non utilisé...

Publié : mer. 03 sept. 2008, 00:13
par tuxce
tu le vois où que tu consommes 1go ?
si c'est à la première ligne de "free", c'est normal, c'est la 2eme ligne qu'il faut voir (-/+ buffers/cache)

Publié : mer. 03 sept. 2008, 01:06
par toto
Je vois le 1Go grace à top, mais j'ai 2 Go de RAM en tout alors que sa soit 1Go de libre ou d'utiliser, sa revient au même...

Publié : mer. 03 sept. 2008, 08:53
par chipster
quand tu as ceci qui se produit, donnes nous le résultat de la commande suivante :

Code : Tout sélectionner

free -m

Publié : mer. 03 sept. 2008, 11:20
par tuxce
toto a écrit :Je vois le 1Go grace à top,
top, c'est pareil que free, la quantité de mémoire affichée comme utilisée est:
la mémoire effectuvement utilisée par les applications + la partie de mémoire pour le cache (celle ci peut etre libéré dès qu'il y en a besoin)
pour s'en assurer, en root:

Code : Tout sélectionner

echo 1 > /proc/sys/vm/drop_caches
après cette commande, tout ce qui était en cache est libéré

Publié : mer. 03 sept. 2008, 11:43
par chipster
En complément de ce que t'a donné Tuxce tu peux aussi modifier le fichier :

Code : Tout sélectionner

/etc/sysctl.conf
pour y rajouter la ligne suivante :

Code : Tout sélectionner

vm.swappiness=25
Ça s'étale de 0 à 100.
Pour les portables par défaut on met 25 comme je l'ai mis plus haut.
Pour les fixes par défaut c'est 60.
Plus tu vas descendre vers 0 et plus le kernel videra le cache souvent. Ça a certains avantages et évidemment des inconvénients aussi ;-)

Re: [Mémoire] Fuite de mémoire?

Publié : mer. 03 sept. 2008, 11:53
par Vinvin
Salut.
toto a écrit :Je ferme ma session et je la relance, toujours 1Gb,
je ferme X et j'ai toujours 1Gb d'utiliser alors qu'il n'y a plus aucune application d'ouverte, juste moi et mon terminal... Et avec top je ne trouve rien qui mange ma mémoire.
Attention !
La gestion de la mémoire RAM par le noyau Linux est très différente de celle du noyau de Windows ! Comme la RAM est beaucoup + rapide que la SWAP, Linux stocke le maximum de données dans la RAM (plutôt que dans la SWAP) pour un accès ultérieur + rapide.

Ce comportement rentabilise tes barrettes de RAM : si tu as 2 Go de RAM, autant les utiliser à fond ! :)
Gérez la RAM et la SWAP

S'il y a besoin de libérer de la RAM, Linux se chargera tout seul d'effacer les données inutilisées contenues dans la RAM, éventuellement en les transférant dans la SWAP.
Finalement, tu n'as pas de problème ! :bananewoot:

Re: [Mémoire] Fuite de mémoire?

Publié : mer. 03 sept. 2008, 12:07
par tuxce
Vinvin a écrit : Attention !
La gestion de la mémoire RAM par le noyau Linux est très différente de celle du noyau de Windows !
c'est en gros le même principe pour les 2! les 2 os utilisent la mémoire libre pour mettre en cache.

Re: [Mémoire] Fuite de mémoire?

Publié : mer. 03 sept. 2008, 17:08
par Vinvin
tuxce a écrit :c'est en gros le même principe pour les 2! les 2 os utilisent la mémoire libre pour mettre en cache.
Oui, c'est le principe de la mémoire RAM : stocker des informations auxquelles le système d'exploitation doit accéder.

La différence de gestion de la mémoire RAM entre Linux et Windows portait sur le terme « maximum » de mon premier post.
  1. Linux stocke le maximum de données en mémoire RAM. Linux n'utilisera la mémoire SWAP que lorsque la mémoire RAM sera pleine.
  2. Windows stocke des données en mémoire SWAP même si la mémoire RAM n'est pas pleine.

Publié : mer. 03 sept. 2008, 17:50
par tuxce
il y a effectivement des différences, mais pas aussi simple que ca,le kernel applique une opération bien plus complexe que juste tester si la mémoire est pleine et en l'occurrence si tu ne modifies pas les valeurs pas défaut de la gestion du swap (/proc/sys/vm/swappiness), le système commence à swapper dès qu'il arrive à ~80% de la RAM.

mais peu importe les détails, ma réponse pointait juste le fait que les 2 systèmes utilisent de la RAM pour le cache et que donc ils affichent un montant de RAM libre qui ne correspond pas tout à fait à ce que les applications peuvent vraiment utiliser.

Publié : mer. 03 sept. 2008, 23:17
par warnaud
clair dans:

Code : Tout sélectionner

 free -m
             total       used       free     shared    buffers     cached
Mem:          3033        555       2477          0         28        264
-/+ buffers/cache:        263       2770
Swap:         2863          0       2863
la valeur "intéressante" est 263 c'est la mémoire vraiment utilisée

Publié : ven. 05 sept. 2008, 21:32
par toto
Donc si j'ai bien compris, tant que je ne démarre pas avec 1Go d'utiliser je suis bon?

Publié : ven. 05 sept. 2008, 21:42
par tuxce
si tu nous disais ce que te répond "free -m", on pourrait te répondre avec plus de précisiosn

Publié : sam. 06 sept. 2008, 08:35
par toto

Code : Tout sélectionner

             total       used       free     shared    buffers     cached
Mem:          2025        645       1380          0         87        285
-/+ buffers/cache:        272       1753
Swap:         2000          0       2000

Publié : sam. 06 sept. 2008, 10:13
par tuxce
:resolu: