¿Cómo encuentro el tamaño de memoria residente de un proceso en busybox?

16

Corro topen busybox y muestra todos los procesos y su tamaño de memoria virtual.

¿Cómo determino cuánta RAM está usando cada proceso?

Collin Anderson
fuente

Respuestas:

17

En busybox, "ps" no tiene una opción "-o", pero "ps l" incluye la columna RSS.

Si el O / S subyacente es Linux, también puede obtener detalles más específicos para un proceso dado de:

cat /proc/PID/status

El resultado se ve así:

Nombre: ceniza
Estado: S (durmiendo)
Tgid: 1990
Pid: 1990
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 32
Grupos: 0 
Pico Vm: 1592 kB
Tamaño de Vm: 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
Hilos: 1
SigQ: 14/340
SigPnd: 00000000000000000000000000000000
ShdPnd: 00000000000000000000000000000000
SigBlk: 00000000000000000000000000000000
SigIgn: 00000000000000000000000004804004
SigCgt: 00000000000000000000000000080002
CapInh: 0000000000000000
CapPrm: ffffffffffffffff
CapEff: ffffffffffffffff
CapBnd: ffffffffffffffff
Cpus_allowed: 1
Cpus_allowed_list: 0
volunte_ctxt_switches: 49
nonvoluntary_ctxt_switches: 15

En esta lista, VmRSS es el conjunto residente actual y VmHWM es el conjunto residente con marca de agua alta.

Andrew Fullford
fuente
BusyBox pses compatible -odesde 2006 , pero debe construirse con la opción de compilación "DESKTOP".
JdeBP
12
ps -o pid,user,vsz,rss,comm,args

La cuarta columna (rss) es el tamaño del conjunto residente, la memoria física no intercambiada utilizada por una tarea, en kilobytes.

nemoinis
fuente
no hay bandera -o en busybox ps
Chad G
Hay si está hecho para tenerlo. Ver la respuesta de Andrew Fullford.
JdeBP
-1
 ps -q pid -o rss= 

Esto debería funcionar

abhiraj
fuente
2
Agregue en qué plataforma se está ejecutando. Mi psno tiene -qopción y estoy ejecutando suse linux.
JamesL
1
Parece que la versión de busyboxps (último commit 4e08a12 de enero de 2017) tampoco tiene esa opción.
AdminBee
-qpidlist Seleccione por PID (modo rápido). Esto selecciona los procesos cuyos números de ID de proceso aparecen en pidlist. Con esta opción, ps lee la información necesaria solo para los pids enumerados en la lista pid y no aplica reglas de filtrado adicionales. El orden de los pids está sin clasificar y conservado. No se permiten opciones de selección adicionales, clasificación y listados de tipos de bosque en este modo. Idéntico a q y --quick-pid.
Kevdog777
@ Kevdog777 ¿podría especificar en qué plataformas se implementa esto? No parece ser un requisito POSIX . Además, el OP preguntó explícitamente sobre el entorno busybox ...
AdminBee
Lo siento @AdminBee, encontré eso aquí: man7.org/linux/man-pages/man1/ps.1.html ya que la gente no sabía lo que -qsignificaba. Entonces solo dice Linux.
Kevdog777