Como encontro o tamanho da memória residente de um processo no busybox?

14

Eu corro topno busybox e mostra todos os processos e seu tamanho de memória virtual.

Como determino quanta RAM está sendo usada por cada processo?

Collin Anderson
fonte

Respostas:

16

No busybox, "ps" não tem a opção "-o", mas "ps l" inclui a coluna RSS.

Se o sistema operacional subjacente for Linux, você também poderá obter detalhes mais específicos para um determinado processo em:

cat /proc/PID/status

A saída é assim:

Nome: ash
Estado: S (adormecido)
Tgid: 1990
Pid: 1990
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
Tamanho: 32
Grupos: 0 
VmPico: 1592 kB
Tamanho Vm: 1592 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 552 kB
VmRSS: 552 kB
Dados vm: 268 kB
VmStk: 136 kB
VmExe: 688 kB
VmLib: 472 kB
VmPTE: 16 kB
VmSwap: 0 kB
Tópicos: 1
SigQ: 14/340
SigPnd: 000000000000000000000000000000000000
ShdPnd: 000000000000000000000000000000000000
SigBlk: 000000000000000000000000000000000000
SigIgn: 00000000000000000000000004804004
SigCgt: 0000000000000000000000000000080002
CapInh: 0000000000000000
CapPrm: ffffffffffffffff
CapEff: ffffffffffffffff
CapBnd: ffffffffffffffff
Cpus_allowed: 1
Cpus_allowed_list: 0
voluntary_ctxt_switches: 49
nonvoluntary_ctxt_switches: 15

Nesta lista, VmRSS é o conjunto de residentes atual e VmHWM é o limite superior do conjunto de residentes.

Andrew Fullford
fonte
O BusyBox psé suportado -odesde 2006 , mas precisa ser construído com a opção de compilação "DESKTOP".
JdeBP 29/01
12
ps -o pid,user,vsz,rss,comm,args

A quarta coluna (rss) é o tamanho do conjunto residente, a memória física não trocada usada por uma tarefa, em kiloBytes.

nemoinis
fonte
Não há nenhuma bandeira -o em ps busybox
Chad L
Existe se for construído para tê-lo. Veja a resposta de Andrew Fullford.
JdeBP 29/01
-1
 ps -q pid -o rss= 

isso deve funcionar

abhiraj
fonte
2
Adicione em qual plataforma você está executando. Meu psnão tem -qopção e estou executando o suse linux.
Sman865 28/01
1
Parece que a versão do busyboxps (confirmação mais recente 4e08a12 de janeiro de 2017) também não tem essa opção.
AdminBee 29/01
-qpidlist Selecione por PID (modo rápido). Isso seleciona os processos cujos números de identificação de processo aparecem na lista de pid. Com esta opção, o ps lê as informações necessárias apenas para os pids listados na lista de pid e não aplica regras de filtragem adicionais. A ordem dos pids é não classificada e preservada. Nenhuma opção de seleção adicional, classificação e tipo de floresta são permitidas neste modo. Idêntico aq e --quick-pid.
Kevdog777 29/01
@ Kevdog777 você poderia especificar em quais plataformas isso é implementado? Não parece ser um requisito POSIX . Além disso, o OP perguntou explicitamente sobre o ambiente do busybox ...
AdminBee
Desculpe @AdminBee, achei isso aqui: man7.org/linux/man-pages/man1/ps.1.html, pois as pessoas não sabiam o que isso -qsignificava. Então é o que diz Linux.
Kevdog777 29/01