Como descobrir quais processos estão consumindo toda a memória?

84

Estou procurando algo como top é o uso da CPU. Existe um argumento de linha de comando para o top que faz isso? Atualmente, minha memória está tão cheia que até 'man top' falha com falta de memória :)

ripper234
fonte

Respostas:

103

Por dentro, topvocê pode tentar o seguinte:

  • Pressione SHIFT+f
  • Pressione a letra correspondente a% MEM
  • pressione ENTER

Você também pode tentar:

$ ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -5

Isso fornecerá os 5 principais processos por uso de memória.

Steven D
fonte
18
No Linux, basta pressionar Mpara classificar por uso de memória física (coluna RES). Em * BSD, execute top -o resou top -o size. Mas o htop é muito melhor e nem consome mais memória do que o top (no entanto, não faz parte do conjunto de ferramentas básico, portanto você pode não ter o instalado).
Gilles
2
Eu tive que pressionar spara classificar por %MEMe, em seguida, pressione escape para o topo.
precisa
11

Se você o tiver instalado, eu gosto de htop iniciá-lo f6, pressione down arrow(( MEM%)) enterpara classificar por memória.

xenoterracida
fonte
6

Uma vez topiniciado, pressione Fpara alternar para a tela do campo de classificação. Escolha um dos campos listados pressionando a tecla listada à esquerda; você provavelmente quer NparaMEM%

Michael Mrozek
fonte
2
Se você deseja MEM%, pressionar 'M' faz o mesmo indicado acima. 'c' adiciona parâmetros de linha de comando à lista de processos, pode ser informativo para o seu problema.
wag
6

No Solaris, o comando que você precisa é:

prstat -a -s size

Isso listará todos os processos em ordem decrescente do tamanho da imagem do processo. Observe que o último é baseado na memória comprometida com o processo pelo sistema operacional, não no uso de memória física residente.

Supostamente, há versões de "top" disponíveis para Solaris, mas elas não fazem parte da instalação padrão.

Joel Hoff
fonte
5

Uma boa alternativa topé htop. Verifique, é muito mais amigável do que o normal.

Klark
fonte
1

Este comando identificará os principais processos que consomem memória:

ps -A --sort -rss -o pid,pmem:40,cmd:500 | head -n 6 | tr -s " " ";z"
user90191
fonte
0

Você pode tentar ps aux --sort -rss | headoups aux | sort -nk +4 | tail

David Okwii
fonte