ps_mem mostra o uso de memória por programa no Linux

23 de abril de 2019

ps_mem é uma ferramenta para verificar o uso de memória central por programa no Linux. Funciona com Python 2 e 3 e, além do Python, não tem dependências.

Ao contrário de muitas outras ferramentas que relatam o uso de memória por processo, o ps_mem relata o uso de RAM dos programas. Por exemplo, mostra a quantidade de RAM usada por todos os processos do Chromium combinados. O desenvolvedor do programa observa que o nome ps_mem é usado para compatibilidade com versões anteriores, mas um nome mais preciso seria coremem.

A RAM exibida é calculada somando a soma da RAM privada e a soma da RAM compartilhada para os processos de um programa.

Executar ps_mem sem argumentos mostra uma lista de programas e seu uso de RAM em ordem ascendente (do menor uso de RAM para o maior). Para cada programa, mostra a RAM privada, compartilhada e total usada, bem como o número de processos. As informações de troca para cada programa também podem ser exibidas, usando a opção -S (sudo ps_mem -S).

Esta é a saída ps_mem (cortada por ser muito longa):

logix@logix-desktop:~$ sudo ps_mem
 Private  +   Shared  =  RAM used Program

192.0 KiB +   6.5 KiB = 198.5 KiB nvidia-persistenced
220.0 KiB +   9.5 KiB = 229.5 KiB vnstatd
232.0 KiB +   7.5 KiB = 239.5 KiB acpid
232.0 KiB +  18.5 KiB = 250.5 KiB atd
236.0 KiB +  41.5 KiB = 277.5 KiB blkmapd
..........................................................
 35.3 MiB +   4.3 MiB =  39.6 MiB goa-daemon
 52.3 MiB +  24.0 MiB =  76.3 MiB Xorg (2)
 81.4 MiB +  13.7 MiB =  95.0 MiB systemd-journald
364.8 MiB +  26.0 MiB = 390.8 MiB gnome-shell (2)
  1.2 GiB + 121.0 MiB =   1.3 GiB firefox-trunk (11)
---------------------------------
                          7.6 GiB
=================================

ps_mem também pode mostrar o uso de memória por processo, em vez de mostrá-lo por programa, usando-o com a opção -d (sudo ps_mem -d).

A ferramenta permite filtrar os resultados por PID. Um exemplo de caso de uso útil é mostrado no PS_mem README - restringindo a saída do ps_mem para o usuário atual:

Comandos para usar no terminal

sudo ps_mem -p $(pgrep -d, -u $USER)

Estas são as opções suportadas pelo ps_mem:

$ ps_mem --help
Usage: ps_mem [OPTION]...
Show program core memory usage

  -h, -help                   Show this help
  -p [,pid2,...pidN]     Only show memory usage PIDs in the specified list
  -s, --split-args            Show and separate by, all command line arguments
  -t, --total                 Show only the total value
  -d, --discriminate-by-pid   Show by process rather than by program
  -S, --swap                  Show swap information
  -w                       Measure and show process memory every N seconds

Instale ps_mem

ps_mem está disponível nos repositórios para Fedora, RHEL, CentOS e Arch Linux. Você pode instalá-lo usando o seguinte.

Fedora

Comandos para usar no terminal

sudo dnf install ps_mem

CentOS/RHEL

Comandos para usar no terminal

sudo yum install ps_mem

Arch Linux

Comandos para usar no terminal

sudo pacman -S ps_mem

Em outras distribuições Linux, como Debian, Ubuntu, etc., que não têm ps_mem nos repositórios, você pode baixar o script Python e instalá-lo em /usr/local/bin usando:

Comandos para usar no terminal

wget https://raw.githubusercontent.com/pixelb/ps_mem/master/ps_mem.py

sudo install ps_mem.py /usr/local/bin/ps_mem

rm ps_mem.py

Você também pode instalar o ps_mem usando PIP (pip install ps_mem).

Use-o executando sudo ps_mem ou digite ps_mem --help para ver as opções disponíveis.

via @m_wimpress

Esse post foi traduzido do site LinuxUprising.com pela rtland.team.

Linux Uprising Blog

Confira a versão original desse post em inglês:

ps_mem Shows Per-Program Memory Usage On Linux
Propaganda
Propaganda