Wie finde ich die Größe des residenten Speichers eines Prozesses in der Busybox?

14

Ich laufe topauf busybox und es werden alle Prozesse und deren virtuelle Speichergröße angezeigt.

Wie bestimme ich, wie viel RAM von jedem Prozess verwendet wird?

Collin Anderson
quelle

Antworten:

16

Auf busybox hat "ps" keine Option "-o", aber "ps l" enthält die RSS-Spalte.

Wenn es sich bei dem zugrunde liegenden Betriebssystem um Linux handelt, erhalten Sie weitere Informationen zu einem bestimmten Prozess von:

cat /proc/PID/status

Die Ausgabe sieht folgendermaßen aus:

Name: Asche
Zustand: S (schlafend)
Tgid: 1990
Pid: 1990
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 32
Gruppen: 0 
VmPeak: 1592 kB
VmSize: 1592 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 552 kB
VmRSS: 552 kB
VmData: 268 kB
VmStk: 136 kB
VmExe: 688 kB
VmLib: 472 kB
VmPTE: 16 kB
VmSwap: 0 kB
Themen: 1
SigQ: 14/340
SigPnd: 00000000000000000000000000000000
ShdPnd: 00000000000000000000000000000000
SigBlk: 00000000000000000000000000000000
Zeichen: 0000000000000000000000000004804004
SigCgt: 000000000000000000000000080002
CapInh: 0000000000000000
CapPrm: ffffffffffffffff
CapEff: ffffffffffffffff
CapBnd: ffffffffffffffff
Cpus_allowed: 1
Cpus_allowed_list: 0
freiwillige_ctxt_schalter: 49
nonvoluntary_ctxt_switches: 15

In dieser Liste ist VmRSS die aktuelle Resident-Menge und VmHWM die High-Water-Mark der Resident-Menge.

Andrew Fullford
quelle
BusyBox pswird -oseit 2006 unterstützt , muss jedoch mit der Build-Option "DESKTOP" erstellt werden.
JdeBP
12
ps -o pid,user,vsz,rss,comm,args

Die vierte Spalte (rss) gibt die Größe des residenten Speichersatzes in Kilobyte an, dh den nicht ausgelagerten physischen Speicher, der von einer Task verwendet wird.

Nemoinis
quelle
Es gibt keine -o Flagge auf busybox ps
Chad G
Es gibt, wenn es gebaut ist, um es zu haben. Siehe Andrew Fullfords Antwort.
JdeBP
-1
 ps -q pid -o rss= 

das sollte funktionieren

abhiraj
quelle
2
Bitte geben Sie an, unter welcher Plattform Sie arbeiten. Meiner pshat keine -qOption und ich verwende Suse Linux.
Sman865
1
In der Busybox-Version von ps(letzter Commit 4e08a12 vom Januar 2017) ist diese Option anscheinend ebenfalls nicht verfügbar.
AdminBee
-qpidlist Auswahl per PID (Schnellmodus). Hiermit werden die Prozesse ausgewählt, deren Prozess-ID-Nummern in der PID-Liste angezeigt werden. Mit dieser Option liest ps die erforderlichen Informationen nur für die in der PID-Liste aufgeführten PIDs und wendet keine zusätzlichen Filterregeln an. Die Reihenfolge der Pids ist unsortiert und bleibt erhalten. In diesem Modus sind keine zusätzlichen Auswahloptionen, Sortierungen und Auflistungen von Gesamtstrukturtypen zulässig. Identisch mit q und --quick-pid.
Kevdog777
@ Kevdog777 könntest du angeben, auf welchen Plattformen dies implementiert ist? Es scheint keine POSIX-Anforderung zu sein . Außerdem fragte das OP explizit nach der Belegtbox-Umgebung ...
AdminBee
Sorry @AdminBee, das habe ich hier gefunden: man7.org/linux/man-pages/man1/ps.1.html, da die Leute nicht wussten, was das -qbedeutet. Also heißt es nur Linux.
Kevdog777