Sous Linux dans le top
processus, vous pouvez appuyer sur <
touche pour décaler le tri d'affichage de sortie vers la gauche. Par défaut, il est trié par le %CPU
donc si vous appuyez 4 fois sur la touche vous le trierez par VIRT
qui est la taille de la mémoire virtuelle vous donnant votre réponse.
Voici une autre façon de procéder :
ps -e -o pid,vsz,comm= | sort -n -k 2
devrait vous donner une sortie triée par taille virtuelle de processus.
Voici la version longue :
ps --everyone --format=pid,vsz,comm= | sort --numeric-sort --key=2
Afficher la mémoire des processus en mégaoctets et le chemin du processus.
ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n
Juste une note secondaire sur un serveur montrant les mêmes symptômes mais montrant toujours un épuisement de la mémoire. Ce qui a fini par trouver était un sysctl.conf d'une boîte avec 32 Go de RAM et configuré pour une base de données avec d'énormes pages configurées à 12000. Cette boîte n'a que 2 Go de RAM, donc elle attribuait toute la RAM libre aux énormes pages (seulement 960 d'entre eux). Définir des pages volumineuses sur 10, car aucune n'a été utilisée de toute façon, a libéré toute la mémoire.
Une vérification rapide de /proc/meminfo pour rechercher les paramètres HugePages_ peut être un bon début pour dépanner au moins un porc de mémoire inattendu.