Sollte ich beim Speicher von RES htop oder top vertrauen?

704
drjrm3

Ich schreibe ein Programm, um einige Messdaten zur Speichernutzung auf unseren Systemen zu testen, und ich möchte eine Zielspeicherbelegung erreichen. Sie führen mein Programm aus, meminflate.exe -G 103.1wenn Sie 103.1 GBSpeicherplatz benötigen.

Wenn ich renne meminflate.exe -G 63.3, sehe ich Top-Shows VIRTals 63.5(OK, nicht zu weit weg), aber RESzeigt 63an topund es zeigt 63.5an htop. Welchen sollte ich vertrauen? Ich denke, htopdas stimmt, aber ich frage mich, warum es da einen Unterschied gibt.

0

1 Antwort auf die Frage

0
Stefan Seidel

Die genaue Anzahl von Bytes für Rss (residentes Set) erhalten Sie von /proc/<pid>/stat:

echo $(($(cat /proc/$(pgrep -n meminflate.exe)/stat | cut -d' ' -f24)*4096)) 

Um es zu erklären: Dies liest /proc/<pid>/stat(hier wird die PID-Nummer verwendet pgrep), die verwendet, cutum nur das 24. Feld (Rss) auszuwählen. Dann wird das Ergebnis mit 4096 (der normalen Seitengröße unter Linux) multipliziert. Sie können es auch nur mit 4 multiplizieren, um die Größe in kiB zu erhalten, oder durch 256 dividieren, um es in MiB zu erhalten.