Forum Linux.général Mémoire consommée mais par quoi/qui ??? Incompréhensible

Posté par .
Tags : aucun
3
16
oct.
2011

Salut à tous!

Voila petit souci sur plusieurs workstations en ubuntu 8.04 x86_64...

Un truc vraiment étrange se produit:

# free -l
             total       used       free     shared    buffers     cached
Mem:       4052796    3988716      64080          0     155284    3475560
Low:       4052796    3988716      64080
High:            0          0          0
-/+ buffers/cache:     357872    3694924
Swap:      4194296        216    4194080

Comme on peut le voir une bonne partie de la mémoire est bouffée... MAIS PAR QUOI ???

# ps -A --sort -rss -o comm,pmem | head -n 11
COMMAND         %MEM
adept_notifier   1.1
Xorg             0.8
kdesktop_lock    0.8
kdesktop         0.6
python           0.6
konqueror        0.5
konqueror        0.5
kicker           0.5
katapult         0.5
systemsettings   0.4

Comme on le voit ci-dessus il n'y a rien qui consomme autant de mémoire que ce qui est décrit!!!

Que se passe-t'il ? J'ai plusieurs systèmes comme cela, je m'en suis rendu compte après avoir mis en place de la supervision SNMP ; j'ai donc pensé à cela, mais ce n'est pas ça puisque même après avoir tué le process snmpd ma mémoire est toujours occupée à 98%...

Qu'en pensez-vous ?

  • # -/+ buffers/Cache

    Posté par . Évalué à 10.

    -/+ buffers/cache: 357872 3694924

    tu as 3694924 Kbytes de mémoire libre

    ce que tu vois ici:
    Mem: 4052796 3988716 64080

    c'est l'occupation mémoire incluant les zones utilisées par le cache de ton système.

    fait un recherche sur ton moteur préféré, c'est une question récurrente

  • # Le cache...

    Posté par . Évalué à 10.

    ma mémoire est toujours occupée à 98%

    Oui, elle est occupée à 98%. Par contre, si tu regardes bien, la majeure partie de cette utilisation est dans le cache (colonne cached).

    Qu'est-ce que ce cache? C'est là où le noyau va stocker, par exemple, les pages qu'ils a lues depuis le disque, au cas où elles seraient utilisées plus tard. Si le système a besoin d'allouer de la mémoire pour un process, il va virer les pages du cache les plus anciennes pour faire de la place, au détriment (d'un peu) de vitesse et réactivité.

    De plus, tu n'as que 216KiB de swap utilisé. C'est rien de rien. Dans certains cas, mon swap monte à plusieurs GiB. Si tu étais vraiment à cours de RAM, l'utilisation de ton swap exploserait.

    Bref, aucun problème dans les données que tu reporte. Juste du ultra normal.

    Hop,
    Moi.

    • [^] # Re: Le cache...

      Posté par (page perso) . Évalué à 7.

      Comme on peut le voir une bonne partie de la mémoire est bouffée... MAIS PAR QUOI ???
      Oui, elle est occupée à 98%. Par contre, si tu regardes bien, la majeure partie de cette utilisation est dans le cache (colonne cached).

      Je complète la réponse bien pertinente de ymorin par le slogan: mémoire inutilisée = mémoire gâchée! Même quand tu te contentes de travailler sous KDE[*], tes 4Go de RAM sont utilisés par ton OS préféré.

      [*] Ceci n'est pas un appeau à trolls, nous sommes lundi!

      • [^] # Re: Le cache...

        Posté par . Évalué à 1.

        Complétons la complétion.

        Pour savoir la RAM utilisée par les applications :

        free -m
        
        

        ligne -/+ buffers/cache, colonne used
        • [^] # Re: Le cache...

          Posté par . Évalué à 1.

          Je crois que tu t'es trompé :

          the -m switch displays it in megabytes.
          
          

          Je ne vois aucune option qui correspondrait dans la manpage.
          • [^] # Re: Le cache...

            Posté par . Évalué à 3.

            free tout court en fait.
            Mais -m pour le lire plus rapidement/simplement.

  • # Linux ate my RAM

    Posté par (page perso) . Évalué à 10.

    http://www.linuxatemyram.com/

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

  • # Meilleure estimation de la mémoire utilisée

    Posté par (page perso) . Évalué à 4.

    En dehors du fait qu'il y a des méthodes plus adaptées pour estimer la mémoire totale utilisée, voilà une version améliorée de ta ligne de commande, qui a le défauts suivants:

    1. Les pourcentages ne sont pas assez précis (beaucoup de 0,0 pour les petits processus) pour faire cette estimation, j'utilise rss (resident size) au lieu de pmem.

    2. Beaucoup de petits processus peuvent manger la mémoire, il ne faut pas se contenter de regarder les plus grosses entrées. J'utilise AWK pour calculer le total et tronque comme toi le résultat pour avoir le total et les plus gros clients.

    ps -ax -o comm,rss | awk '{ t = t +$2; printf("%10d %s\n", $2, $1) } END {printf("%10d %s\n", t, "total")}' | sort -nrk2 | head
       1510468 total
        504184 seamonkey-bin
        355688 Xorg
        111772 mono
         48512 npviewer.bin
         37948 plugin-container
         37592 pidgin
         36676 emacs
         23312 Thunar
         21756 xfce4-panel
    
    

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.