Pourquoi les valeurs% MEM en haut ne correspondent-elles pas à la mémoire totale utilisée?

18

Je débogue actuellement des problèmes de performances avec mon VPS et pour cela, j'essaie de comprendre lequel des processus consomme le plus de mémoire. En haut de la lecture, voici ce que j'obtiens:

Mem:    366544k total,   321396k used,    45148k free,      380k buffers
Swap:  1048572k total,   592388k used,   456184k free,     7756k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                  
12339 ruby      20   0  844m  74m 2440 S    0 20.8   0:24.84 ruby                                                                                     
12363 ruby      20   0  844m  73m 1576 S    0 20.6   0:00.26 ruby                                                                                     
21117 ruby      20   0  171m  33m 1792 S    0  9.3   2:03.98 ruby                                                                                     
11846 ruby      20   0  858m  21m 1820 S    0  6.0   0:09.15 ruby                                                                                     
21277 ruby      20   0  219m  11m 1648 S    0  3.2   2:00.98 ruby                                                                                     
  792 root      20   0  266m  10m 1024 S    0  3.0   1:40.06 ruby                                                                                     
  532 mysql     20   0  234m 4760 1040 S    0  1.3   0:41.58 mysqld                                                                                   
  793 root      20   0  250m 4616  984 S    0  1.3   1:20.55 ruby                                                                                     
  586 root      20   0  156m 4532  848 S    0  1.2   6:17.10 god                                                                                      
12315 ruby      20   0  175m 2412 1900 S    0  0.7   0:07.55 ruby                                                                                     
 3844 root      20   0 44036 2132 1028 S    0  0.6   1:08.22 ruby                                                                                     
10939 ruby      20   0  179m 1884 1724 S    0  0.5   0:08.33 ruby                                                                                     
 4660 ruby      20   0  229m 1592 1440 S    0  0.4   2:55.46 ruby                                                                                     
 3879 nobody    20   0 37428  964  520 S    0  0.3   0:01.99 nginx 

Comme vous pouvez le voir, ma mémoire est utilisée à environ 90% (ce qui est mon problème) mais lorsque vous additionnez les valeurs% MEM, elle passe à environ 50 à 60% seulement. Même chose, RES n'ajoute pas jusqu'à ~ 350 Mo. Pourquoi? Suis-je mal comprendre leur signification?

Merci

ben
la source
Je pense que top ajuste le nombre de lignes affichées avec la taille d'affichage, donc tous les processus peuvent ne pas être visibles.
Samik

Réponses:

6

J'essaie de comprendre lequel des processus consomme le plus de mémoire.

C'est simple: rubis !

lorsque vous additionnez les valeurs% MEM, cela passe à environ 50-60% seulement

En fait, l'addition des colonnes comme indiqué donne 69,2% .

  • Comme Samik l'a noté, cela n'inclut certainement pas tous les processus sur votre système - essayez de coller la sortie de top -b -n 1pour obtenir la sortie complète dans un fichier et de la partager avec nous afin que nous puissions mieux vous aider.

  • En outre, le noyau prend une certaine quantité de mémoire et certains types de VPS (par exemple Xen, KVM) réservent une certaine mémoire supplémentaire au démarrage pour leur usage interne. Collez également la sortie de dmesg.

Pour de meilleures métriques et une facilité d'utilisation, je vous recommande d'utiliser htopInstaller htop au lieu de top, avec l'option "Hide userland threads" activée:

entrez la description de l'image ici

Regardez aussi memtop:

entrez la description de l'image ici

ish
la source
Voici la sortie supérieure complète: paste.ubuntu.com/1055673 et dmesg: paste.ubuntu.com/1055674 L' utilisation de htop me donne une sortie différente! Je vois trois des 22,4% des processus MEM, en fait, beaucoup de processus sont dupliqués (mysqld aussi, plusieurs fois). En tout cas, j'aime la sortie, beaucoup plus propre ... Memtop est cool aussi, je suis mieux en mesure de comprendre laquelle de mes applications ruby ​​consomme le plus de mémoire;)
ben
0

La topcommande linux montre toute la rammémoire utilisée, non seulement pour vous, mais aussi pour le système. linux cachescertaines zones de votre disque dur afin d'accélérer votre ordinateur. il est conseillé d'utiliser tout autre moniteur mem.

Alberto Garea
la source