Warum addieren sich die% MEM-Werte oben nicht zum gesamten verwendeten Speicher?

18

Ich debugge derzeit Leistungsprobleme mit meinem VPS und versuche zu verstehen, welche der Prozesse den meisten Speicher verbrauchen. Lesen Sie oben, hier ist was ich bekomme:

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 

Wie Sie sehen, ist mein Speicher zu etwa 90% ausgelastet (was mein Problem ist), aber wenn Sie die% MEM-Werte addieren, sind es nur etwa 50-60%. Das Gleiche gilt, RES summiert sich nicht auf ~ 350 MB. Warum? Verstehe ich ihre Bedeutung falsch?

Vielen Dank

ben
quelle
Ich denke, oben passt die Anzahl der angezeigten Zeilen mit der Anzeigegröße an, so dass möglicherweise nicht alle Prozesse sichtbar sind.
Samik

Antworten:

6

Ich versuche zu verstehen, welcher der Prozesse die meiste Erinnerung aufnimmt.

Das ist ganz einfach: Rubin !

Wenn Sie die% MEM-Werte addieren, werden nur 50-60% erreicht

Tatsächlich ergibt die Addition der Spalten wie gezeigt 69,2% .

  • Wie Samik bemerkt hat, umfasst dies sicherlich nicht alle Prozesse auf Ihrem System - versuchen Sie, die Ausgabe von pastebinningtop -b -n 1 , um die vollständige Ausgabe in einer Datei zu erhalten und mit uns zu teilen, damit wir Ihnen besser helfen können.

  • Außerdem beansprucht der Kernel etwas Speicher und einige Arten von VPS (z. B. Xen, KVM) reservieren beim Booten zusätzlichen Speicher für ihre interne Verwendung. Pastebin die Ausgabe von dmesgauch.

Für bessere Messdaten und eine einfachere Verwendung empfehle ich, " htop"Installieren Sie htop anstelle von "top" zu verwenden und die Option " Benutzerland- Threads ausblenden" zu aktivieren:

Bildbeschreibung hier eingeben

Schauen Sie sich auch an memtop:

Bildbeschreibung hier eingeben

ish
quelle
Hier ist die vollständige Top-Ausgabe: paste.ubuntu.com/1055673 und dmesg: paste.ubuntu.com/1055674 Wenn ich htop benutze, erhalte ich eine andere Ausgabe! Ich sehe drei der 22,4% MEM-Prozesse, in der Tat sind viele der Prozesse dupliziert (auch mysqld, oft). Auf jeden Fall mag ich die Ausgabe, viel sauberer ... Memtop ist auch cool, ich kann besser verstehen, welche meiner Ruby-Apps den meisten Speicher verbraucht;)
ben
0

Der Linux- topBefehl zeigt den gesamten verwendeten ramSpeicher an, nicht nur für Sie, sondern auch für das System. Linux cacheseinige Bereiche von Ihrer Festplatte, um Ihren Computer zu beschleunigen. Es wird empfohlen, einen anderen Mem-Monitor zu verwenden.

Alberto Garea
quelle