Re: Où est passée ma m émoire ?

Top Page

Reply to this message
Author: Edgar Bonet
Date:  
To: Liste Guilde
Old-Topics: Re: Où est passée ma mémoire ?
New-Topics: Re: Où est passée ma mémoire ?
Subject: Re: Où est passée ma m émoire ?
Je disais :
> $ free
>             total       used       free     shared    buffers     cached
> Mem:        515856     490832      25024          0      46532     119252
> -/+ buffers/cache:     325048     190808
> Swap:       522104      25204     496900


et Yannick Lecaillez :
>             490Mo de RAM utilisé en tout (Mem: used)
>          - 325Mo utlisé pour le cache (donc pas par les process) 
> (buffers/cache: used)
>       --------------
>        = 165 Mo.

>
>    165 Mo de RAM pris pour les processus auquel il faut certainement
> rajouté le SWAP (logiquement je pense que le cache n'est jamais swappé donct
> il s'agit de la mémoire utilisé par les processus) soit 25 Mo:

>
>    165 + 25 = 190Mo on est donc plus proche de ton résultat obtenur par ps.


Ce n'est pas comme ça que je comprends la sortie de free. Le man dit :

    The -o switch disables the display of a "buffer adjusted" line.
    If the -o option is not specified, free subtracts buffer memory
    from the used memory and adds it to the free memory reported.


Donc 325048 n'est pas « used by buffers/cache » mais « buffer adjusted
used », autrement dit used - buffers - cache. En voici un schéma :

    used*:      325048 \ used = 490832
    buffers:     46532  |  \
    cache:      119252 /    | free* = 190808
    free:        25024     /
    ------------------
    total:      515856


où les termes avec * correspondent à la « buffer adjusted line » :

    used* = used - buffers - cache
    free* = free + buffers + cache


Vous pouvez vérifier que les calculs ci-dessus sont bien cohérents avec
ce qui est affiché. Par ailleurs, gkrellm a une option « Show three
memory krells: [used | buffers | cache | raw free] » qui montre la
répartition de la mémoire entre les quatre parties de mon schéma
ci-dessus.

Je m'attendais à ce que used* corresponde à la mémoire utilisée par les
processus, donc à la somme de la colonne RSS de ps. On m'a fait
remarquer en privé qu'en fait on devrait avoir somme(RSS) > used* à
cause de la mémoire partagée. Pour moi c'est le cas seulement après le
reboot.

-- 
Edgar Bonet           Maison : 04 76 21 29 16    Bureau : 04 76 88 10 96
3 rue Jean Prévost    Mobile : 06 77 19 79 39    Fax    : 04 76 88 11 91
38000 Grenoble        guilde@???     www.edgar-bonet.org