Panoramica

A volte, potremmo aver bisogno di controllare la dimensione totale della memoria su un server che esegue Linux o potremmo aver bisogno di usare le statistiche di memoria negli script della shell. Fortunatamente, abbiamo accesso a numerosi strumenti che possiamo usare per controllare la memoria fisica totale. In questo tutorial, stiamo andando a prendere diversi approcci per servire a tale scopo utilizzando diversi comandi e strumenti utili.

2. free Command

free è il più semplice di tutti i comandi che vedremo. Viene utilizzato per stampare l’utilizzo della memoria fisica e di swap — per impostazione predefinita, stampa su standard output. Il comando gratuito è uno dei comandi ampiamente utilizzati per controllare rapidamente le statistiche della RAM perché è disponibile sulla maggior parte delle distribuzioni Linux. Possiamo semplicemente digitare il comando gratuito sul nostro terminale senza bandiere:

$ free
 total used free shared buff/cache availableMem: 8021048 1320432 5689744 335556 1010872 6121932Swap: 0 0 0

Come possiamo, la dimensione della memoria fisica viene stampata in byte. Tuttavia, possiamo facilmente stampare l’output in un formato leggibile dall’uomo usando il flag-h o-human:

$ free -h
 total used free shared buff/cache availableMem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8GiSwap: 0B 0B 0B

Come si può vedere nell’output sopra, abbiamo un totale di 7.6 GiB di RAM. Inoltre, ci sono molte altre opzioni che possono essere utilizzate per stampare l’output nel formato che ci piace come –kilo, –mega, –Giga e così via. Un’altra opzione interessante è l’opzione-s:

$ free -h -s 5

Il flag-s sta per secondi, quindi free stamperà l’utilizzo della RAM ogni 5 secondi in questo esempio. È particolarmente utile se vogliamo monitorare l’utilizzo della RAM a un intervallo specificato. Possiamo facilmente terminare il processo con la scorciatoia da tastiera Ctrl + C.

3. Comando vmstat

Come il comando gratuito, vmstat (virtual Memory statistics) è disponibile anche sulla maggior parte delle distribuzioni Linux. Per impostazione predefinita, quando digitiamo il comando vmstat, stamperà la memoria libera, bufferizzata e memorizzata nella cache insieme a swap, CPU, IO e informazioni di sistema:

$ vmstat -w
--procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 5352900 56816 1053708 0 0 162 73 328 1087 18 4 78 0 0

Il flag –w o-wide stampa l’output in un formato leggibile. Dal momento che siamo interessati alla dimensione totale della RAM, aggiungeremo il flag –s o-stats:

$ vmstat -s
 8021048 K total memory 1564516 K used memory 305336 K active memory 1962636 K inactive memory 5391588 K free memory 58224 K buffer memory 1006720 K swap cache 0 K total swap 0 K used swap 0 K free swap 76393 non-nice user cpu ticks 5 nice user cpu ticks 14122 system cpu ticks 337834 idle cpu ticks 1790 IO-wait cpu ticks 1463 IRQ cpu ticks 614 softirq cpu ticks 0 stolen cpu ticks 617253 pages paged in 310410 pages paged out 0 pages swapped in 0 pages swapped out 1426200 interrupts 4722588 CPU context switches 1625563254 boot time 1949 forks

La prima voce nell’output è la RAM fisica totale. A volte, non abbiamo bisogno di tutte le informazioni, quindi possiamo usare grep per estrarre solo la voce desiderata:

$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory

4. top Command

top è fondamentalmente un task manager della riga di comando con un output in tempo reale. Viene utilizzato per controllare i processi in esecuzione in un layout di tabella pulito. Ci mostra anche la CPU, RAM, e le informazioni di sistema in generale. Possiamo accenderlo semplicemente eseguendo il comando superiore:

$ top
top - 15:18:13 up 57 min, 1 user, load average: 3.40, 3.26, 2.04Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie%Cpu(s): 17.2 us, 3.6 sy, 0.0 ni, 77.5 id, 0.3 wa, 0.9 hi, 0.5 si, 0.0 stMiB Mem : 7833.1 total, 4665.9 free, 1782.3 used, 1384.8 buff/cachetop - 15:18:49 up 57 min, 1 user, load average: 2.61, 3.08, 2.03Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombietop - 15:18:58 up 58 min, 1 user, load average: 2.45, 3.02, 2.02MiB Swap: 0.0 total, 0.0 free, 0.0 used. 5324.5 avail Mem

Nella parte superiore, possiamo vedere le informazioni sulla memoria accanto al campo Mem e osservare che abbiamo un totale di 7833 MiB di RAM totale.

5. dmidecode Utility

dmidecode è uno strumento di supporto che stampa le informazioni sui componenti hardware – come le specifiche hardware, numeri di serie, e le versioni del BIOS – in un formato leggibile. Le informazioni hardware vengono estratte dalla tabella DMI. Possiamo anche usarlo per trovare informazioni interessanti sul nostro sistema come la memoria massima supportata.

5.1. Installazione di dmidecode

dmidecode non è installato su alcune distribuzioni Linux per impostazione predefinita, quindi lo installeremo prima. Possiamo installare dmidecode direttamente dal nostro repository di distribuzione utilizzando un gestore di pacchetti.

Per le distribuzioni basate su Ubuntu, possiamo installare il pacchetto tramite apt:

# apt install dmidecode

Per RHEL, Fedora e CentOS, possiamo usare yum:

# yum install dmidecode

Sulle distribuzioni basate su Arch, usa semplicemente pacman:

# pacman -Sy dmidecode

5.2. Utilizzando dmidecode

Una volta completata l’installazione, possiamo eseguire il comando dmidecode dal nostro terminale:

# dmidecode

Abbiamo bisogno di avere privilegi di root per eseguire dmidecode. Una volta eseguito il comando, saremo in grado di vedere informazioni hardware dettagliate. Contiene molte informazioni relative ai nostri componenti hardware, ma siamo interessati solo alla nostra dimensione totale della memoria.

Fortunatamente, possiamo alimentare l’opzione-type al comando per diversi componenti come BIOS, memoria, processore, temperature e così via. L’opzione-type prevede un numero per i tipi DMI.

Nel nostro caso, vogliamo guardare il tipo di memoria DMI, a cui è possibile accedere con i numeri assegnati 5, 6, 16, 17, 18, 19, 20, 21, e 22. Tuttavia, siamo interessati al numero 19, che stamperà i dispositivi RAM attualmente collegati agli slot sulla nostra scheda madre:

# dmidecode --type 19
# dmidecode 3.3Getting SMBIOS data from sysfs.SMBIOS 3.0.0 present.Handle 0x0049, DMI type 19, 31 bytesMemory Array Mapped AddressStarting Address: 0x00000000000Ending Address: 0x001FFFFFFFFRange Size: 8 GBPhysical Array Handle: 0x0044Partition Width: 1

Come possiamo vedere, abbiamo solo un singolo dispositivo RAM con 8 GB di dimensione totale installato in uno degli slot RAM.

6. / proc / meminfo Virtual File

La directory /proc è un tipo speciale di directory che contiene file virtuali. Questi file virtuali sono un modo per dare un’occhiata al kernel, ai processi e alle configurazioni di Linux. Questi file in realtà non esistono sul disco e non occupano spazio, ma vengono creati quando vengono letti. L’accesso ad alcuni file richiede l’accesso root.

C’è un file virtuale speciale chiamato meminfo, all’interno della directory /proc, che può essere letto con comandi come cat e less. Il file meminfo contiene informazioni sulla nostra dimensione della memoria fisica tra le altre informazioni utili. Leggiamo il file/proc / meminfo usando cat:

$ cat /proc/meminfo

Nell’esempio sopra, abbiamo usato il comando cat, che è un’utile utility in grado di leggere da un file o da uno standard input. Una volta eseguito il comando, leggerà /proc/meminfo e ci presenterà un output lungo per quanto riguarda la nostra memoria fisica. Siamo interessati solo alla dimensione totale della RAM, che appare nelle prime tre righe dell’output:

$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kBMemFree: 4542960 kBMemAvailable: 5155668 kB

Abbiamo stampato solo le linee che ci interessano usando il comando head. L’argomento-n fornito al comando head viene utilizzato per specificare il numero di righe da leggere. Le dimensioni sono stampate in kilobyte e dovrebbero darci un’idea di quale sia la nostra memoria fisica totale, libera e disponibile.

Supponiamo che stiamo scrivendo uno script Bash in cui abbiamo bisogno di elaborare la dimensione fisica della RAM. Possiamo ottenerlo leggendo prima il file / proc / meminfo e poi grep la dimensione totale della memoria:

#!/bin/bashtotal_ram () { local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o ']*') echo $totalram}ram_size=$(total_ram)echo "Total RAM: $ram_size kB"

Ora, salviamo lo script e lo rendiamo eseguibile:

$ chmod +755 totalram.sh$ ./totalram.shTotal RAM: 8021048 kB

Utilizzo di Task Manager GUI

Ci sono una varietà di task manager GUI che possiamo usare per verificare l’utilizzo di CPU, RAM e rete oltre alla gestione dei processi. Diamo un rapido sguardo a quelli più popolari per Linux.

7.1. GNOME System Monitor

GNOME System Monitor è il task manager predefinito fornito con l’ambiente desktop GNOME. Tuttavia, se stiamo eseguendo un ambiente desktop diverso, possiamo facilmente cercare il pacchetto gnome-system-monitor sul nostro repository di pacchetti di distribuzione. Una volta installato, possiamo lanciarlo dalla riga di comando:

$ gnome-system-monitor

Navigando alla scheda Risorse, possiamo vedere la nostra dimensione totale della memoria tra le altre statistiche.

7.2. KSysGuard

KSysGuard è il task manager predefinito sviluppato dalla comunità KDE e viene fornito con KDE per impostazione predefinita. Allo stesso modo, se stiamo usando un ambiente desktop diverso, possiamo facilmente installarlo sul nostro sistema cercando il pacchetto ksysguard nel repository dei pacchetti. Possiamo lanciarlo con il comando ksysguard una volta installato:

$ ksysguard

Una volta avviato ksysguard, possiamo andare alla scheda Caricamento del sistema e vedere le nostre informazioni sulla memoria insieme a un bel grafico.

Conclusione

In questo articolo, abbiamo esaminato diversi comandi e strumenti che possono aiutarci a scoprire la dimensione della memoria fisica del nostro sistema Linux.

Abbiamo coperto il comando minimal free e il suo comando vmstat alternativo. Quindi abbiamo usato il comando in alto per scoprire varie informazioni di sistema. Abbiamo anche esaminato l’utilità dmidecode e come possiamo estrarre le informazioni sulla memoria fisica dalla tabella DMI.

In seguito, abbiamo appreso cos’è la directory /proc e come possiamo leggere il file /proc/meminfo per verificare la dimensione totale della RAM e usarlo in uno script bash. Infine, abbiamo imparato a conoscere un paio di task manager grafici e come possiamo usarli per verificare l’utilizzo della RAM e le statistiche.

Se hai qualche anno di esperienza nell’ecosistema Linux e sei interessato a condividere questa esperienza con la comunità, dai un’occhiata alle nostre Linee guida sui contributi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.