Wie messe ich den Spitzenspeicher einer Anwendung, die unter Linux ausgeführt wird?
Ich führe diese App im Batch aus, daher kann ich RSS nicht verwenden, da sie den aktuellen Speicher meldet. Ich benötige den Spitzenspeicher, den die Anwendung verwendet hat, um am Ende gemeldet zu werden.
Der VmPeak ist ebenfalls keine Lösung, da er den zugewiesenen Speicher meldet und auch nicht vom realen RAM, sondern auch von der Festplatte berechnet.
Antworten:
Hier sind zwei Methoden zum Verfolgen der maximalen Speichernutzung eines Prozesses.
Sirup
Ich habe dieses Tool nicht verwendet, aber es klingt wie das, wonach Sie suchen. Es heißt Sirup .
Beschreibung
Beispiel
/usr/bin/time -v
Ja, ironischerweise kann der Befehl GNU time Ihnen die maximale Speichernutzung eines Prozesses anzeigen. Es meldet den Spitzenspeicher wie folgt :
Maximum resident set size (kbytes)
.Beispiel
Verweise
quelle
Obwohl das Thema ziemlich alt ist, möchte ich ein anderes Projekt teilen, das aus der Linux-Kernelfunktion von cgroups hervorgegangen ist.
https://github.com/gsauthof/cgmemtime :
Anwendungsbeispiele wären:
quelle
wait4
, um den Prozessausgang in einer Kombination mit cgroups (memory.max_usage_in_bytes
) abzufangen , was sinnvoll erscheint. Weitere Details finden Sie in der README-Datei auf github.