¿Cómo mostrar los resultados `top` ordenados por uso de memoria en tiempo real?


375

¿Cómo puedo mostrar los topresultados en mi terminal en tiempo real para que la lista esté ordenada por uso de memoria?


24
En Linux, >y <mueva la columna de clasificación hacia la derecha y hacia la izquierda. Dado que la %MEMcolumna está justo a la derecha de la %CPUcolumna, que también es la columna de clasificación predeterminada, solo se necesita presionar una tecla para cambiar entre las dos. Lo sé, su pregunta tiene la etiqueta de Macintosh, por eso estoy escribiendo esta respuesta como un comentario.
Walter Tross

55
Prefiero htop, principalmente porque me dice cómo hacer esto.
lindhe

Respuestas:


424

Use el topcomando en Linux / Unix:

top
  • presione shift+ mdespués de ejecutar el topcomando
  • o puede elegir interactivamente en qué columna ordenar
    • presione Shift+ fpara ingresar al menú interactivo
    • presione la flecha upo downhasta que %MEMse resalte la opción
    • presione spara seleccionar la %MEMopción
    • presione enterpara guardar su selección
    • presione qpara salir del menú interactivo

O especifique el orden de clasificación en la línea de comando

# on OS-X
top -o MEM
# other distros
top -o %MEM

Referencias

https://stackoverflow.com/questions/4802481/how-to-see-top-processes-by-actual-memory-usage


2
En Linux es top -o %MEM(tenga en cuenta el "%")
Gabriel Hautclocq

@GabrielHautclocq Debe depender de su distribución de Linux y del paquete incluido. Debian 7 usa procps-ngy no hay ninguna -oopción en esa versión. SHIFT-Mfunciona para mí una vez que topse inicia.
Christopher Schultz

top -o %MEMfunciona en mi Debian 8 y 9, pero no en Debian 7, tienes razón @Christopher Schultz.
Gabriel Hautclocq

en lugar de <key> enter </key> debería ser <key> q </key>
guiones el

99

La opción de línea de comando -o(o que significa "Override-sort-field") también funciona en mi máquina Xubuntu y de acuerdo con la página de manual de Mac de arriba también debería funcionar en un Macintosh. Si quiero acortar el uso de memoria, generalmente uso

top -o %MEM

que ordena por columna %MEM. Pero puedo usar VIRT, RESo SHRtambién. En un Macintosh probablemente usaría memo vsize.

No sé por qué ni cómo, pero esto es bastante diferente entre los sistemas Unix e incluso entre las distribuciones de Linux. Por ejemplo, -oni siquiera está disponible en mi Raspberry con Wheezy. Sin embargo, puede valer la pena intentarlo.


2
La respuesta podría ser más clara para el usuario: %MEMse da como respuesta al lector ansioso; mientras que no funciona en todas partes (de lejos).
7heo.tk

1
Para Macbook 2014 esto dice:top -o %MEM invalid argument -o: %MEM
anon58192932

Siento escuchar eso.
ytg

Esta es la única respuesta que realmente funcionó en centos para mí.
Amalgovinus

1
@ anon58192932 debe reemplazar %MEM(o PID, VIRTetc.) por cualquier nombre de columna que vea cuando topsolo se ejecute . Como señaló ytg , "en un Macintosh probablemente usaría memo vsize".
ebosi

14

Parece que la bandera -o tomará el nombre real de la columna. Entonces, si el comando superior muestra solo "mem", entonces el comando debería ser "top -o mem " .

Para la máquina ubuntu con la que estoy probando, la columna se llama "% MEM" . En el OSX Yosemite que probé, es "mem" .


13

Para Ubuntu 14.04 comenzando con

htop -s=MEM

hizo el truco para mí


Funciona bien para OSX también.
ehime

Es un comando diferente. Buscando respuesta sobre el topcomando (como se preguntó en esta pregunta) no htop.
Lukas

7

Si topya se está ejecutando, presione o . Sobre los datos, aparecerá un mensaje:

primary key [xxxxx]:

¿Dónde xxxxxestá la clave de clasificación actual? Escriba el nombre de la columna por la que desea ordenar. Si el nombre de una columna contiene "%" o "#", omita el carácter. Para% CPU, simplemente escriba "cpu".


6

La pregunta original parece haber sido para una Mac, pero para cualquiera que se encuentre con esta respuesta, en Red Hat Linux (y muchos otros), 'top -m' comienza con resultados ordenados por uso de memoria.


No en Debian 8
marcovtwout

Trabajado en: Red Hat Enterprise Linux Server versión 6.8 (ninguna de las otras respuestas funcionó).
Contango



2

Si está utilizando el topque viene con Ubuntu ( top -v= procps-ng version 3.3.10), puede usar estos atajos de teclado interactivos para cambiar la clasificación. Tenga en cuenta que estas son todas letras mayúsculas, así que use shifto caps lock.

M% MEM
NPID
P% CPU
TTIME +

Por defecto, se ordenarán en orden DESC. Use Rpara alternar ASC / DESC.

Para establecer la clasificación desde la opción de línea de comando, use top -o %MEM. Puedes especificar cualquier columna.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.