Quando si risolve il problema del rallentamento o del comportamento scorretto 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 diversi.
free Command #
free
è il comando più comunemente usato per controllare l’utilizzo della memoria di un sistema Linux. Visualizza informazioni sulla memoria totale, utilizzata e libera.
in generale free
viene richiamato con il -h
opzione che significa stampare l’output in formato leggibile:
free -h
total used free shared buff/cache availableMem: 3936 1087 252 130 2596 2427Swap: 0 0 0
Ecco quello che ogni colonna media:
- totale – La quantità totale di memoria che possono essere utilizzati dalle applicazioni.
- usato-Memoria usata. Viene calcolato come:
used = total - free - buffers - cache
- memoria libera / inutilizzata.
- shared-Questa colonna può essere ignorata; viene mostrata solo per compatibilità con le versioni precedenti.
- buff / cache – La memoria combinata utilizzata dai buffer del kernel e dalla cache delle pagine 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 scambiare.
Il comando free
stampa le informazioni per la memoria fisica e lo scambio di sistema.
top Command #
top
è un’utilità da 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 richiamare il comando basta digitare top
:
free -h
L’output sarà simile a questa:
L’intestazione dell’output include informazioni circa il sistema del totale, libero e usati fisica e della memoria di swap.
La colonna %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 del file virtuale/proc/meminfo
. Questo file viene utilizzato dalfree
top
ps
, e altri comandi di informazioni di sistema.
Utilizzare less
o cat
per visualizzare il contenuto del file /proc/meminfo
:
cat /proc/meminfo
Il file include una grande quantità di informazioni sulla memoria dei sistemi e sull’utilizzo dello swap:
MemTotal: 4030592 kBMemFree: 401804 kBMemAvailable: 2507504 kB...
Le informazioni dal file/proc/meminfo
possono essere analizzate e utilizzate negli script della shell.
ps_mem Script #
ps_mem
è uno script Python che riporta l’utilizzo della memoria RAM per programma. Funziona sia con Python 2 e 3 e può essere installato con pip
:
sudo pip3 install ps_mem
In esecuzione ps_mem
richiede privilegi di amministratore:
sudo ps_mem
L’output includono l’utilizzo della memoria di ogni programma in esecuzione, in ordine crescente:
Private + Shared = RAM usedProgram... 11.9 MiB + 20.2 MiB = 32.1 MiBnginx (4) 8.2 MiB + 42.4 MiB = 50.6 MiBsystemd-journald 55.8 MiB + 307.2 MiB = 363.0 MiBphp-fpm7.4 (6)233.9 MiB + 234.0 MiB = 467.9 MiBredis-server578.2 MiB + 578.6 MiB = 1.1 GiBmysqld--------------------------------- 2.2 GiB=================================
Questo script è utile quando si desidera scoprire che l’esecuzione di un programma sta prendendo la maggior parte della memoria di sistema.
Conclusione #
Vi abbiamo mostrato diversi comandi che è possibile utilizzare per controllare l’utilizzo della memoria di sistema.