Como interpretar a saída "top" do busybox?

8

Estou usando o BusyBox em um pequeno sistema ARM incorporado. Estou tentando ler a saída "top", em particular para o processo Python listado. Quanta memória real esse processo está usando? Também o que VSZ representa? O sistema possui apenas 64 MB de RAM.

Mem: 41444K usado, 20572K grátis, 0K shrd, 0K buff, 18728K em cache
CPU: 3% usr 3% sys 0% nic 92% ocioso 0% io 0% irq 0% sirq
Média de carga: 0.00 0.04 0.05 1/112 31667
  PID PPID USER STAT VSZ% VSZ% CPU COMMAND
  777 775 python S 146m 241% 3% / usr / bin / python -u - dpdsrv.py
SeanLabs
fonte

Respostas:

4

VSZ(ou VIRT, dependendo da versão de top) é a quantidade de memória mapeada no espaço de endereço do processo. Ele inclui páginas apoiadas pelo arquivo executável do processo e bibliotecas compartilhadas, sua pilha e pilha, além de qualquer outra coisa que ele tenha mapeado.

No caso da amostra de saída que você mostra, o tamanho virtual é maior que a quantidade de memória física no sistema, portanto, necessariamente (algumas!) Das páginas no espaço de endereço do processo não estão fisicamente presentes na RAM. Isso não é um problema: muitos programas contêm grandes quantidades de código e mapeiam muitas bibliotecas compartilhadas, mas na verdade só usam certas partes desse código, ou pelo menos apenas algumas partes do código ao mesmo tempo, o que permite que o kernel caia as partes não utilizadas da memória sempre que não forem usadas ou mesmo para nunca carregá-las.

Sua versão do topparece não mostrar uma REScoluna, que informava quanto da memória no espaço de endereço do processo está atualmente na RAM.

Celada
fonte