Use o seguinte comando:
ps aux --sort -rss
Verifique aqui para mais uso da memória do processo Linux
Eu posso ver a lista de todos os processos e a memória via
ps aux
e passando pelo VSZ e pelo RSS
Existe uma maneira de classificar a saída desse comando pela ordem decrescente no valor RSS?
Use o seguinte comando:
ps aux --sort -rss
Verifique aqui para mais uso da memória do processo Linux
Um método rápido e sujo é apenas canalizar a saída de ps aux
para o comando sort
:
$ ps aux | sort -rn -k 5,6
$ ps aux | sort -rn -k 5,6
...
root 1584 0.0 0.0 22540 1236 ? S 07:04 0:01 hald-addon-storage: polling /dev/sr0 (every 2 sec)
root 1575 0.0 0.0 22536 872 ? S 07:04 0:00 /usr/libexec/hald-addon-generic-backlight
root 1574 0.0 0.0 22536 880 ? S 07:04 0:00 /usr/libexec/hald-addon-leds
root 1565 0.0 0.0 22536 876 ? S 07:04 0:00 /usr/libexec/hald-addon-rfkill-killswitch
saml 2507 0.0 0.0 22232 500 ? S 07:05 0:00 dbus-launch --sh-syntax --exit-with-session
root 1671 0.0 0.0 22156 936 ? Ss 07:04 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
...
Isso não funciona para os cabeçalhos de coluna que são misturados com a saída, mas é fácil de lembrar na linha de comando e é uma maneira aceitável de fazer o que você deseja ao exibir manualmente esse tipo de saída.
root 1791 0.0 0.0 4140 536 tty2 Ss+ 07:04 0:00 /sbin/mingetty /dev/tty2
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 996 0.0 0.0 0 0 ? S 07:04 0:01 [kdmflush]
root 982 0.0 0.0 0 0 ? S 07:04 0:00 [kvm-irqfd-clean]
Uma dica adicional seria canalizar toda a saída para outro comando, como less
. Isso permite que você olhe para as informações uma página por vez e também use as teclas de seta e as teclas de página para cima / para baixo para rolar para frente e para trás na saída.
$ ps aux | sort -rn -k 5,6 | less
Se a sua saída estiver muito envolvida, você também poderá utilizar a opção -S
para menos, o que forçará toda a saída a permanecer em uma única linha. Você pode então usar as teclas de seta para mover para a esquerda / direita / cima / baixo para ver tudo isso.
$ ps aux | sort -rn -k 5,6 | less -S
Algumas versões do ps
fornecem a capacidade de usar --sort
. Essa opção pode usar as chaves que são prefixadas com +
ou -
para indicar a ordem de classificação ... menos para maior ou maior para menor.
vsz, -rss
$ ps aux --sort=vsz,-rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 07:03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 07:03 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 07:03 0:01 [migration/0]
root 5 0.0 0.0 0 0 ? S 07:03 0:00 [watchdog/0]
+ vsz, + rss
$ ps aux --sort=+vsz,+rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 07:03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 07:03 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 07:03 0:01 [migration/0]
root 5 0.0 0.0 0 0 ? S 07:03 0:00 [watchdog/0]
-vsz, -rss
$ ps aux --sort=-vsz,-rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1832 0.0 0.0 2088924 3312 ? Sl 07:04 0:00 /usr/sbin/console-kit-daemon --no-daemon
saml 3517 0.2 1.2 2073196 100492 ? Sl 07:06 0:34 /home/saml/.dropbox-dist/dropbox
saml 3516 0.0 0.8 2071032 67388 ? Sl 07:06 0:07 /home/saml/.dropbox-dist/dropbox
saml 2657 0.1 0.7 1580936 57788 ? Sl 07:05 0:27 nautilus
Mesmo que o ps não reflita a memória real usada, este comando é bastante útil.
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'
A maneira simples é instalar o htop
em que você pode classificar o processo com base no PID, porcentagem de CPU, MEM
mais sofisticado
Como uma alternativa aos argumentos do estilo BSD mostrados nas outras respostas, pode-se usar (pelo menos usando o procps, fornecido pelo Debian e pelo Ubuntu):
ps -eF --sort=-rss
top
Shift + F
para classificar com base no campo (veja o menu completo abaixo) n
para classificar com base no uso de memória n: %MEM = Memory usage (RES)