En Linux en el top
proceso puede presionar <
para cambiar el orden de visualización de salida a la izquierda. Por defecto está ordenado por el %CPU
así que si presionas la tecla 4 veces lo ordenarás por VIRT
que es el tamaño de la memoria virtual que le da su respuesta.
Otra forma de hacer esto es:
ps -e -o pid,vsz,comm= | sort -n -k 2
debería darle una salida ordenada por tamaño virtual de los procesos.
Aquí está la versión larga:
ps --everyone --format=pid,vsz,comm= | sort --numeric-sort --key=2
Muestra la memoria de los procesos en megabytes y la ruta del proceso.
ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n
Solo una nota al margen en un servidor que muestra los mismos síntomas pero aún muestra agotamiento de la memoria. Lo que terminé encontrando fue un sysctl.conf de una caja con 32 GB de RAM y configurado para una base de datos con páginas grandes configuradas para 12000. Esta caja solo tiene 2 GB de RAM, por lo que estaba asignando toda la RAM libre a las páginas grandes (solo 960 de ellos). Establecer páginas grandes en 10, ya que no se usó ninguna de todos modos, liberó toda la memoria.
Una revisión rápida de /proc/meminfo para buscar la configuración de HugePages_ puede ser un buen comienzo para solucionar al menos un acaparamiento de memoria inesperado.