Durante la risoluzione dei problemi di rallentamento o comportamento anomalo del sistema o dell'applicazione, una delle prime cose da controllare è l'utilizzo della memoria di sistema.
Questo articolo spiega come controllare l'utilizzo della RAM in Linux utilizzando diversi comandi.
free
Comando #
free
è il comando più comunemente usato per controllare l'utilizzo della memoria di un sistema Linux. Visualizza le informazioni sulla memoria totale, utilizzata e libera.
In genere, free
viene invocato con -h
opzione che significa stampare l'output in un formato leggibile dall'uomo:
free -h
total used free shared buff/cache available
Mem: 3936 1087 252 130 2596 2427
Swap: 0 0 0
Ecco cosa significa ogni colonna:
- totale - La quantità totale di memoria che può essere utilizzata dalle applicazioni.
- usato - Memoria usata. Viene calcolato come:
used = total - free - buffers - cache
- gratuito - Memoria libera/non utilizzata.
- condiviso - Questa colonna può essere ignorata; viene mostrato solo per compatibilità con le versioni precedenti.
- buff/cache - La memoria combinata utilizzata dai buffer del kernel e dalla cache di pagina e dalle lastre. Questa memoria può essere recuperata in qualsiasi momento se necessario dalle applicazioni.
- disponibile - Una stima della memoria disponibile per l'avvio di nuove applicazioni, senza scambio.
Il free
il comando stampa le informazioni per la memoria fisica e lo scambio di sistema.
top
Comando #
top
è un'utilità della riga di comando che visualizza informazioni in tempo reale sui processi in esecuzione. Mostra anche il riepilogo del sistema, incluso l'utilizzo della memoria.
Per invocare il comando digita semplicemente top
:
top
L'output sarà simile a questo:
L'intestazione dell'output include informazioni sulla memoria fisica e di scambio totale, libera e utilizzata del sistema.
Il %MEM
fornisce informazioni sulla condivisione utilizzata della memoria fisica disponibile per ogni processo in esecuzione.
/proc/meminfo
#
Il modo più semplice per controllare l'utilizzo della memoria RAM è visualizzare il contenuto di /proc/meminfo
file virtuale. Questo file è utilizzato da free
, top
, ps
e altri comandi di informazioni di sistema.
Usa less
o cat
per visualizzare il contenuto del /proc/meminfo
file:
cat /proc/meminfo
Il file include una grande quantità di informazioni sulla memoria di sistema e sull'utilizzo dello scambio:
MemTotal: 4030592 kB
MemFree: 401804 kB
MemAvailable: 2507504 kB
...
Le informazioni da /proc/meminfo
il file può essere analizzato e utilizzato negli script della shell.
ps_mem
Script #
ps_mem
è uno script Python che segnala l'utilizzo della memoria RAM per programma. Funziona sia con Python 2 che con 3 e può essere installato con pip
:
sudo pip3 install ps_mem
Esecuzione di ps_mem
richiede privilegi di amministratore:
sudo ps_mem
L'output includerà l'utilizzo della memoria di ciascun programma in esecuzione in ordine crescente:
Private + Shared = RAM used Program
...
11.9 MiB + 20.2 MiB = 32.1 MiB nginx (4)
8.2 MiB + 42.4 MiB = 50.6 MiB systemd-journald
55.8 MiB + 307.2 MiB = 363.0 MiB php-fpm7.4 (6)
233.9 MiB + 234.0 MiB = 467.9 MiB redis-server
578.2 MiB + 578.6 MiB = 1.1 GiB mysqld
---------------------------------
2.2 GiB
=================================
Questo script è utile quando vuoi scoprire quale programma in esecuzione sta occupando la maggior parte della memoria di sistema.
Conclusione #
Ti abbiamo mostrato diversi comandi che puoi utilizzare per controllare l'utilizzo della memoria di sistema.
Se hai domande o commenti, lascia un commento qui sotto.