visualizar ver uso tengo saber que puede procesos porcentaje ordenador memoria mas consumo consumen como linux memory ram opensuse

linux - tengo - ¿Cómo ver los procesos principales ordenados por el uso de memoria real?



ver procesos que consumen mas memoria aix (8)

Listar y ordenar los procesos por uso de memoria:

ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS

Tengo un servidor con 12G de memoria. Un fragmento de la parte superior se muestra a continuación:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12979 frank 20 0 206m 21m 12m S 11 0.2 26667:24 krfb 13 root 15 -5 0 0 0 S 1 0.0 36:25.04 ksoftirqd/3 59 root 15 -5 0 0 0 S 0 0.0 4:53.00 ata/2 2155 root 20 0 662m 37m 8364 S 0 0.3 338:10.25 Xorg 4560 frank 20 0 8672 1300 852 R 0 0.0 0:00.03 top 12981 frank 20 0 987m 27m 15m S 0 0.2 45:10.82 amarok 24908 frank 20 0 16648 708 548 S 0 0.0 2:08.84 wrapper 1 root 20 0 8072 608 572 S 0 0.0 0:47.36 init 2 root 15 -5 0 0 0 S 0 0.0 0:00.00 kthreadd

El free -m muestra lo siguiente:

total used free shared buffers cached Mem: 12038 11676 362 0 599 9745 -/+ buffers/cache: 1331 10706 Swap: 2204 257 1946

Si entiendo correctamente, el sistema tiene solo 362 MB de memoria disponible. Mi pregunta es: ¿Cómo puedo saber qué proceso consume la mayor parte de la memoria?

Al igual que la información de fondo, el sistema ejecuta 64bit OpenSuse 12 .


Primero debes leer una explicación sobre la salida de forma free . En pocas palabras: tiene al menos 10,7 GB de memoria fácilmente utilizable por los procesos.

Luego, debe definir qué es el "uso de memoria" para un proceso (no es fácil ni inequívoco, confíe en mí).

Entonces podríamos ayudar más :-)


Primero, repita este mantra por un momento: "la memoria no utilizada es memoria desperdiciada". El kernel de Linux mantiene grandes cantidades de metadatos de archivos y archivos que se solicitaron, hasta que algo que parece más importante elimina esos datos. Es por eso que puedes correr:

find /home -type f -name ''*.mp3'' find /home -type f -name ''*.aac''

y haz que la segunda instancia de find ejecute a una velocidad ridícula.

Linux solo deja un poco de memoria ''libre'' para manejar los picos en el uso de la memoria sin demasiado esfuerzo.

Segundo, quieres encontrar los procesos que están comiendo toda tu memoria; en la top use el comando M para ordenar por uso de memoria. Siéntase libre de ignorar la columna VIRT , que solo le dice cuánta memoria virtual se ha asignado, no cuánta memoria está usando el proceso. RES informa de cuánta memoria reside , o está actualmente en RAM (en lugar de intercambiarse en disco o en realidad nunca se asignó, a pesar de haber sido solicitada).

Pero, dado que RES contará, por ejemplo, la memoria /lib/libc.so.6 una vez para casi todos los procesos, no es exactamente una medida asombrosa de cuánta memoria está usando un proceso. La columna SHR informa cuánta memoria se comparte con otros procesos, pero no hay garantía de que otro proceso realmente se esté compartiendo; podría compartirse, pero nadie más quiere compartirla.

La herramienta smem está diseñada para ayudar a los usuarios a smem mejor la cantidad de memoria que realmente debe atribuirse a cada proceso individual. Hace un trabajo inteligente para descubrir qué es realmente único, qué se comparte y proporcionalmente compara la memoria compartida con los procesos que la comparten. smem puede ayudarlo a comprender a dónde va mejor su memoria que la top , pero top es una excelente primera herramienta.


Puede especificar qué columna ordenar, con los siguientes pasos:

steps: * top * shift + F * select a column from the list e.g. n means sort by memory, * press enter * ok


Puede ver el uso de la memoria ejecutando este código en su terminal:

$ watch -n2 free -m $ htop


Usa la punta rápida usando el comando top en linux / unix

$ top

y luego presiona Shift + m (es decir, escribe una M mayúscula).

De man top

SORTING of task window For compatibility, this top supports most of the former top sort keys. Since this is primarily a service to former top users, these commands do not appear on any help screen. command sorted-field supported A start time (non-display) No M %MEM Yes N PID Yes P %CPU Yes T TIME+ Yes

O alternativamente: presione Shift + f , luego elija la pantalla para ordenar por el uso de la memoria presionando la tecla n y luego presione Enter . Verás un proceso activo ordenado por el uso de la memoria.


ps aux --sort ''%mem''

desde procps ''ps (por defecto en Ubuntu 12.04) genera una salida como:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND ... tomcat7 3658 0.1 3.3 1782792 124692 ? Sl 10:12 0:25 /usr/lib/jvm/java-7-oracle/bin/java -Djava.util.logging.config.file=/var/lib/tomcat7/conf/logging.properties -D root 1284 1.5 3.7 452692 142796 tty7 Ssl+ 10:11 3:19 /usr/bin/X -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch ciro 2286 0.3 3.8 1316000 143312 ? Sl 10:11 0:49 compiz ciro 5150 0.0 4.4 660620 168488 pts/0 Sl+ 11:01 0:08 unicorn_rails worker[1] -p 3000 -E development -c config/unicorn.rb ciro 5147 0.0 4.5 660556 170920 pts/0 Sl+ 11:01 0:08 unicorn_rails worker[0] -p 3000 -E development -c config/unicorn.rb ciro 5142 0.1 6.3 2581944 239408 pts/0 Sl+ 11:01 0:17 sidekiq 2.17.8 gitlab [0 of 25 busy] ciro 2386 3.6 16.0 1752740 605372 ? Sl 10:11 7:38 /usr/lib/firefox/firefox

Así que aquí Firefox es el principal consumidor con el 16% de mi memoria.

Usted también podría estar interesado en:

ps aux --sort ''%cpu''


ps aux | awk ''{print $2, $4, $11}'' | sort -k2rn | head -n 10

(Agregando el indicador numérico -n para ordenar el comando).