En este post veremos distintos métodos para obtener el uso de memoria RAM por proceso sobre sistemas operativos Linux.
Método1: Comando ps, ordenar por la columna pmem
ps aux --sort pmem
Ordena por uso de memoria RAM de menor a mayor en porcentaje.
El comando ps nos muestra los procesos que están funcionando en el momento en el equipo.
Los parámetros aux, significan:
a = Todos los procesos de todas las sesiones activas, no solo la actual.
u = Muestra el identificador del usuario (User ID).
x = Incluye las sesiones que no son TTY, por ejemplo las sesiones establecidas por SSH.
Con el parámetro --sort pmem ordenamos por uso de memoria.
Ejemplo de ejecución:
[root@LINUX1 ~]# ps aux --sort pmem
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19360 1084 ? Ss Apr25 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S Apr25 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Apr25 0:05 [migration/0]
root 4 0.0 0.0 0 0 ? S Apr25 0:03 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S Apr25 0:00 [migration/0]
root 6 0.0 0.0 0 0 ? S Apr25 0:01 [watchdog/0]
root 7 0.0 0.0 0 0 ? S Apr25 0:11 [migration/1]
Método2: Comando ps, utilizando pipes y filtros
Ordena por uso de memoria RAM de mayor a menor en porcentaje.
ps aux | awk '{print $2, $4, $11}' | sort -k2r | head -n 15
La salida de la ejecución de ps aux (parámetros explicados en el método anterior) es pasada el comando awk.
Con awk filtramos que muestre solo las columnas: 2, 4 y 11.
La salida es pasada el comando sort para ordenar. La columna de referencia para ordenar, será la segunda.
Finalmente, la salida es pasada al comando head para mostrar las primeras lineas, con el parámetro -n, indicamos el número de lineas a mostrar.
Ejemplo de ejecución:
[root@LINUX1 ~]# ps aux | awk '{print $2, $4, $11}' | sort -k2r | head -n 15
PID %MEM COMMAND
10967 1.8 drwebd.real
10968 1.8 drwebd.real
10969 1.8 drwebd.real
10970 1.8 drwebd.real
2192 1.8 drwebd.real
1935 1.0 /usr/libexec/mysqld
15463 0.8 /usr/sbin/httpd
15554 0.8 /usr/sbin/httpd
16160 0.8 /usr/sbin/httpd
13012 0.8 spamd
14487 0.7 /usr/sbin/httpd
14865 0.7 /usr/sbin/httpd
14929 0.7 /usr/sbin/httpd
15077 0.7 /usr/sbin/httpd
Método3: Con el comando top, podemos ordenar los procesos por uso de memoria RAM.
Si ejecutamos top y pulsamos la tecla "M" mayúscula, nos ordenará los procesos por uso de memoria RAM.
Otra opción, es ejecutar el comando top con el parámetro -a y directamente nos ordenará los procesos por uso de memoria RAM.
top -a
Vista ejecución:
Fuente: sysadmit