Wie lese ich die Speichernutzung in htop?

30

Es ist meine htop Ausgabe:

Bildbeschreibung hier eingeben

Zum Beispiel verwirrt mich dieses Ruby-Skript:

Bildbeschreibung hier eingeben

Wie viel physischer Speicher wird verwendet? 3+1+8+51+51? 51? 51+51?

Lai Yu-Hsuan
quelle
Dann ist die RESSpalte diejenige, die Sie betrachten möchten.
David Schwartz
ja ich schaue es mir an Aber welches ist die Speichernutzung durch mein Skript? Warum gibt es zwei 51? Verbraucht es 102 Megabyte? Oder nur 51 Megabyte? In dem äußeren Prozess RES enthält den inneren Prozess RES, warum die 3, 1, 8sind alle weniger als 51?
Lai Yu-Hsuan
2
Es gibt zwei 51er, weil der Prozess gegabelt hat. Wahrscheinlich werden nicht 102 Megabyte verbraucht, da die beiden Prozesse jeweils die gleichen 51 Megabyte verwenden, dies lässt sich jedoch nicht leicht feststellen. Der andere Prozess RES enthält den inneren Prozess, wenn sich dieser Speicher auch im anderen Prozess befindet und nicht, wenn dies nicht der Fall ist. In den RES-Feldern sehen Sie, wie viel physischen Speicher jeder Prozess verwendet, aber auch andere Prozesse können denselben physischen Speicher verwenden (oder nicht).
David Schwartz
1
Wenn Sie wissen möchten, ob die beiden Prozesse denselben Speicher verwenden, verwenden Sie pmap -d <Prozess-ID>
Sirch
1
@ LaiYu-Hsuan: Ja, du liegst falsch. Die Seiten werden nicht kopiert, sondern geteilt. Sie werden nur kopiert, wenn einer der beiden Vorgänge Schreibvorgänge auf die Seite ausführt, und müssen dann nicht mehr freigegeben werden. (Die heißt "copy on write" oder "CoW".)
David Schwartz

Antworten:

45

Blenden Sie Benutzer-Threads aus (Umschalt + H) und schließen Sie die Prozessstrukturansicht (F5). Anschließend können Sie den gewünschten Prozess nach PID sortieren und die Spalte RES lesen (Sortieren nach MEM% durch Drücken von Umschalt + M oder F3 zum Suchen) in cmd Zeile)

nrc
quelle
4
Shift-H ist das, wonach ich seit Ewigkeiten gesucht habe. Vielen Dank!
ein bezahlter Nerd
4

Speicher ist eine schwierige Sache. Sie können den verwendeten physischen Speicher nicht berechnen, indem Sie einfach ps / htop / top ausführen. Der Speicher kann von Prozessen gemeinsam genutzt werden.

Ich empfehle Ihnen, die Verwendung mit diesem Skript zu überprüfen:

http://www.pixelbeat.org/scripts/ps_mem.py

GioMac
quelle