Utilice el siguiente comando:
ps aux --sort -rss
Consulte aquí para ver más uso de memoria de proceso de Linux
Un método rápido y sucio es simplemente canalizar la salida de ps aux
al sort
comando:
$ ps aux | sort -rn -k 5,6
Ejemplo
$ 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
...
Esto no se aplica a los encabezados de las columnas que se mezclan con la salida, pero es fácil de recordar en la línea de comando y es una forma aceptable de hacer lo que desea al ver manualmente este tipo de salida.
Ejemplo
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]
Más consejos
Un consejo adicional sería canalizar toda la salida a otro comando como less
. Esto le permite ver la información una página a la vez y también usar las teclas de flecha y las teclas de página arriba/abajo para desplazarse hacia adelante y hacia atrás a través de la salida.
$ ps aux | sort -rn -k 5,6 | less
Si su salida se ajusta mucho, también puede utilizar el -S
cambie a menos, lo que obligará a toda la salida a permanecer en una sola línea. Luego puede usar las teclas de flecha para moverse hacia la izquierda/derecha/arriba/abajo para verlo todo.
$ ps aux | sort -rn -k 5,6 | less -S
Ordenar dentro de ps
Ciertas versiones de ps
proporcionar la capacidad de usar --sort
. Este conmutador puede aceptar claves que tengan el prefijo +
o un -
para indicar el orden de clasificación... de menor a mayor o de mayor a menor.
Ejemplos
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
Incluso si ps no refleja la memoria real utilizada, este comando es muy ú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 "" }'