Esistono molti comandi che possono essere utilizzati per identificare la dimensione totale della memoria RAM installata e controllare la quantità di memoria libera e utilizzata nel sistema operativo Linux come Red Hat Enterprise Linux (RHEL), CentOS, Ubuntu e così via
La memoria è una delle risorse critiche per un computer, in particolare per un server, poiché la memoria sufficiente garantisce che alle applicazioni possa essere allocata la memoria necessaria per eseguire l'operazione prima di eseguire lo scambio su disco, il che è molto più lento, ostacolando i tempi di risposta.
Poiché la GUI non è sempre disponibile soprattutto per gli utenti Linux che utilizzano frequentemente SSH o Telnet su un sistema remoto, questo tutorial si concentra sulle opzioni della riga di comando per scoprire l'utilizzo della memoria e lo stato in Linux, che include RAM e swap.
Il comando free mostra la quantità totale di memoria fisica e di scambio libera e utilizzata nel sistema, nonché i buffer e le cache utilizzati dal kernel. Le informazioni vengono raccolte analizzando /proc/meminfo. Le informazioni visualizzate sono:
- total:memoria totale installata (MemTotal e SwapTotal in /proc/meminfo)
- usato:memoria utilizzata (calcolata come totale – libera – buffer – cache)
- libero:memoria non utilizzata (MemFree e SwapFree in /proc/meminfo)
- condivisa:memoria utilizzata (principalmente) da tmpfs (Shmem in /proc/meminfo, disponibile sui kernel 2.6.32, visualizzata come zero se non disponibile)
- Buffer:memoria utilizzata dai buffer del kernel (Buffer in /proc/meminfo)
- cache:memoria utilizzata dalla cache della pagina e dalle lastre (cache e lastra in /proc/meminfo)
- buff/cache:somma di buffer e cache
- disponibile:stima della quantità di memoria disponibile per l'avvio di nuove applicazioni, senza scambio. A differenza dei dati forniti dalla cache o dai campi liberi, questo campo tiene conto della cache della pagina e anche del fatto che non tutte le lastre di memoria recuperabili verranno recuperate a causa degli elementi in uso (MemAvailable in /proc/meminfo, disponibile sui kernel 3.14, emulato su kernel 2.6.27+, altrimenti uguale a gratuito)
Esempio di output:
total used free shared buff/cache available Mem: 24512912 253112 23761468 41484 498332 23873560 Swap: 12387324 0 12387324SuggerimentoL'opzione predefinita visualizza la memoria in KB (kilobyte). Per visualizzare in MB (megabyte), utilizzare "free -m".
vmstat riporta informazioni su processi, memoria, paging, block IO, trap, dischi e attività della CPU. Per impostazione predefinita vengono visualizzate le seguenti informazioni:
Proc
r:il numero di processi eseguibili (in esecuzione o in attesa di runtime).
b:il numero di processi nel sonno ininterrotto.
Memoria
swpd:la quantità di memoria virtuale utilizzata.
free:la quantità di memoria inattiva.
buff:la quantità di memoria utilizzata come buffer.
cache:la quantità di memoria utilizzata come cache.
inact:la quantità di memoria inattiva. (-un'opzione)
attivo:la quantità di memoria attiva. (-un'opzione)
Scambia
si:quantità di memoria scambiata dal disco (/s).
quindi:quantità di memoria scambiata su disco (/s).
IO
bi:blocchi ricevuti da un dispositivo a blocchi (blocchi/i).
bo:blocchi inviati a un dispositivo a blocchi (blocchi/i).
Sistema
in:il numero di interruzioni al secondo, incluso l'orologio.
cs:il numero di cambi di contesto al secondo.
CPU
Queste sono le percentuali del tempo totale della CPU.
us:tempo dedicato all'esecuzione di codice non kernel. (tempo dell'utente, incluso il tempo piacevole)
sy:tempo impiegato per eseguire il codice del kernel. (ora di sistema)
id:tempo trascorso inattivo. Prima di Linux 2.5.41, questo includeva il tempo di attesa IO.
wa:tempo trascorso in attesa di IO. Prima di Linux 2.5.41, incluso in idle.
st:tempo rubato da una macchina virtuale. Prima di Linux 2.6.11, sconosciuto.
Esempio di output:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 23760168 62096 438828 0 0 0 0 4 4 0 0 100 0 0
Il comando top viene utilizzato principalmente per visualizzare una vista dinamica in tempo reale di un sistema in esecuzione, in particolare i processi o i thread Linux attualmente gestiti dal kernel Linux. Ma visualizza anche le informazioni di riepilogo del sistema, inclusa la memoria RAM e le dimensioni libere e utilizzate.
Per uscire dal programma principale, premi Ctrl + c , o semplicemente q .
Esempio di output:
top - 09:55:34 up 20:23, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 188 total, 2 running, 186 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 24512912 total, 23758072 free, 252420 used, 502420 buff/cache KiB Swap: 12387324 total, 12387324 free, 0 used. 23873892 avail Mem
Come puoi vedere dai comandi sopra, la maggior parte delle utilità si basa su /proc/meminfo per segnalare la quantità di memoria libera e utilizzata e lo spazio di scambio nel sistema. /proc/meminfo è un file virtuale che contiene statistiche dinamiche sull'utilizzo della memoria da parte del kernel e del sistema.
Per visualizzare il contenuto di /proc/meminfo, usa uno dei seguenti comandi e qualsiasi altro tu preferisca:
cat /proc/meminfo more /proc/meminfo less /proc/meminfo
atop è un monitor interattivo per visualizzare il carico su un sistema Linux simile a top. Mostra l'occupazione delle risorse hardware più critiche (dal punto di vista delle prestazioni) a livello di sistema, ovvero cpu, memoria, disco e rete. atop non è installato per impostazione predefinita sulla maggior parte delle distribuzioni Linux, quindi se vuoi usarlo, devi installarlo manualmente.
htop è un visualizzatore di processi interattivo per sistemi Unix, che è simile a top ma fornisce informazioni più dettagliate. È un'applicazione in modalità testo (per console o terminali X) e richiede ncurses. htop non è installato per impostazione predefinita sulla maggior parte delle distribuzioni Linux, quindi se vuoi usarlo, devi installare htop manualmente.
Informazioni sulla RAM fisica
Se sei interessato a conoscere i moduli DIMM RAM fisici installati sul sistema, usa dmidecode (DMI Table Decoder), uno strumento per eseguire il dump del contenuto di una tabella DMI (o SMBIOS) di un computer in un formato leggibile dall'uomo. Questa tabella contiene una descrizione dei componenti hardware del sistema, nonché altre informazioni utili come i numeri di serie e la revisione del BIOS.
Per utilizzare dmidecode per visualizzare i moduli RAM fisici, utilizzare uno dei seguenti comandi:
$sudo dmidecode --type memory $ sudo dmidecode -t 17
Esempio di output:
# dmidecode 3.0 Scanning /dev/mem for entry point. SMBIOS 2.6 present. Handle 0x001C, DMI type 17, 28 bytes Memory Device Array Handle: 0x001A Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: CPU0 Bank Locator: DIMM01 Type: Other Type Detail: Other Speed: 1066 MHz Manufacturer: Samsung Serial Number: 88XX8X88 Asset Tag: AssetTagNum01 Part Number: M888MXXXXMM8-MM8 Rank: Unknown