Wenn ich Prozesse mit ihrem Speicherverbrauch starte top -c
oder htop
erhalte, ist dies nicht das, was ich sehen möchte.
Gibt es eine Befehlszeile, mit der der RAM-Verbrauch einer bestimmten Anwendung angezeigt werden kann?
Zum Beispiel möchte ich den RAM-Verbrauch des Apache-Webservers sehen (nicht indem ich stattdessen alle Prozesse überprüfe, die er ausführt).
10
Antworten:
Hier finden Sie eine sehr gute ausführliche Erklärung: https://blogs.kde.org/2005/09/15/measuring-memory-usage
Aber im Wesentlichen: Sie müssen wirklich verstehen, wie die Anwendung eingerichtet ist.
Schauen Sie sich zum Beispiel MySQL an:
Der insgesamt verwendete Speicher beträgt ca. 25 MB (Nehmen Sie die 27 MB RES und subtrahieren Sie die gemeinsam genutzte (SHR))
Ich habe dies überprüft, indem ich die gesamte Speichernutzung (frei -m, + / Puffer / Cache) vor und nach der Ausgabe eines "killall mysqld" überprüft habe. Nachdem alle mysqld-Prozesse beendet wurden, sank die Speichernutzung laut "free -m" um 25 MB.
Wenn Sie sehen, dass jeder Prozess identische VIRT-, RES- und SHR-Spalten hat, handelt es sich wahrscheinlich nur um Threads desselben Prozesses. (Ältere Linux-Bibliotheken handhabten das Threading, indem sie mehrere reale Prozesse erzeugten, die im Wesentlichen denselben Speicher belegten.)
Wenn sie unterschiedlich sind, können Sie sie möglicherweise durch eine SUMME von (RES - SHR) abschätzen. Dies funktioniert jedoch nur, wenn die Prozesse tatsächlich separate Prozesse sind und nicht nur Threads desselben Prozesses. Ein Blick auf die PPID (Parent Process ID) hilft ebenfalls. Wenn sie alle das gleiche Elternteil haben, sind sie wahrscheinlich nur Threads (obwohl nicht unbedingt).
Leider gibt es unter Linux keine wirklich gute und einfache Möglichkeit, dies zu beantworten. Die einzige einfache Möglichkeit besteht darin, "frei" unmittelbar vor Beendigung des Vorgangs zu überprüfen und unmittelbar danach erneut zu überprüfen. Sehen Sie sich die Zeile "- / + Puffer / Cache:" an und sehen Sie, wie viel Speicher belegt wurde. Daraufhin wird angezeigt, wie viel Speicher verwendet wurde.
quelle
Mit ein bisschen Hilfe von
man ps
und dieser tollen Antwort ...Zum Beispiel:
Andere Möglichkeiten:
Dies kann ohne
-x
und ausgeführt werdentail -1
:zeigt nur Prozentsatz:
Während der Verwendung können
top
Sie außerdem drücken i, um Leerlauf- / Zombie-Prozesse zu ignorieren und das Lesen zu vereinfachen:quelle
pmap
zeigt viele Dinge über Ressourcen, die die PID verwendet. Die Informationen werden basierend auf dem Namen des Prozesses und der daraus ermittelten PID bereitgestelltpidof
, sodass der Hauptprozess angezeigt wird, wenn der Name angegeben wird (ich glaube, ich weiß nicht, ob er sich auf übergeordnete Prozesse bezieht)