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

78

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

    
por ripper234 19.12.2010 / 07:41

7 respostas

94

De dentro de top , você 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 dará ao top 5 processos por uso de memória.

    
por 19.12.2010 / 07:54
10

Se você o instalou, eu gosto de htop , uma vez que você pode pressionar f6 , seta para baixo (para MEM% ), enter para ordenar por memória.

    
por 19.12.2010 / 11:17
6

No Solaris, o comando que você precisa é:

prstat -a -s size

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

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

    
por 19.12.2010 / 14:42
5

Quando top for iniciado, pressione F para alternar para a tela de campo de classificação. Escolha um dos campos listados pressionando a tecla listada à esquerda; você provavelmente desejará N para MEM%

    
por 19.12.2010 / 07:53
5

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

    
por 19.12.2010 / 16:15
1

Este comando identificará os principais processos de consumo de memória:

ps -A --sort --rss -o pid,pmem:40,cmd:500 | head -n 6 | tr -s " " ";"
    
por 04.11.2014 / 07:26
0

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

    
por 14.07.2017 / 16:40