Diese Frage wird hier ausführlich behandelt.
Wie messen Sie die Speichernutzung einer Anwendung oder eines Prozesses unter Linux?
Aus dem Blog-Artikel zum Verständnis der Speichernutzung unter Linux , dass dies ps
kein genaues Werkzeug für diese Absicht ist.
Warum
ps
ist "falsch"Abhängig davon, wie Sie es betrachten,
ps
wird nicht die tatsächliche Speichernutzung von Prozessen gemeldet. Was es wirklich tut, ist zu zeigen, wie viel realen Speicher jeder Prozess beanspruchen würde, wenn er der einzige Prozess wäre, der ausgeführt wird . Auf einem typischen Linux-Computer werden natürlich mehrere Dutzend Prozesse gleichzeitig ausgeführt, was bedeutet, dass die von gemeldeten VSZ- und RSS-Nummernps
fast definitiv falsch sind .
ps
Zeigt eigentlich nicht einmal das an - es zeigt virtuelle und residente Speichernummern an, wobei virtuell die maximale Speichermenge ist, die der Prozess theoretisch verwenden könnte. Es war der einzige Prozess (niemals), der jede einzelne zugewiesene Seite verwendet (passiert nie). und keine Seiten zugeordnet oder aufgehoben (unwahrscheinlich). Während resident anzeigt, wie viel virtueller Speicher gerade physisch zugeordnet ist. Typischerweise ist es virt > usage > res
jedoch auf einem 64-Bit-System virt ~= res*10
ein sehr großer Bereich.