Su Linux nel top
processo puoi premere <
tasto per spostare a sinistra l'ordine di visualizzazione dell'output. Di default è ordinato per %CPU
quindi se premi il tasto 4 volte lo ordinerai per VIRT
che è la dimensione della memoria virtuale che ti dà la risposta.
Un altro modo per farlo è:
ps -e -o pid,vsz,comm= | sort -n -k 2
dovrebbe darti un output ordinato per dimensione virtuale dei processi.
Ecco la versione lunga:
ps --everyone --format=pid,vsz,comm= | sort --numeric-sort --key=2
Mostra la memoria dei processi in megabyte e il percorso del processo.
ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n
Solo una nota a margine su un server che mostra gli stessi sintomi ma mostra ancora l'esaurimento della memoria. Ciò che è finito per trovare è stato un sysctl.conf da una scatola con 32 GB di RAM e configurazione per un DB con pagine enormi configurate a 12000. Questa scatola ha solo 2 GB di RAM quindi assegnava tutta la RAM libera alle pagine enormi (solo 960 di loro). L'impostazione di pagine enormi su 10, poiché nessuna è stata utilizzata comunque, ha liberato tutta la memoria.
Un rapido controllo di /proc/meminfo per cercare le impostazioni di HugePages_ può essere un buon inizio per la risoluzione di almeno un problema di memoria inaspettato.