Cookie

In Linux ci sono comandi più o meno per qualsiasi cosa, perché l’interfaccia grafica non sempre può essere visibile. Quando si lavora su server ed esiste solo l’accesso shell è disponibile ed ogni cosa debba essere fatte con questi comandi. Quindi oggi esploreremo i comandi che possono essere usati per controllare l’utilizzo della memoria su di un sistema Linux. La memoria include RAM e swap.

È spesso importante controllare l’utilizzo della memoria e la memoria usata per fare in modo di non rimanere senza e continuare a fornire l’accesso degli utenti al server. Per esempio un sito. Se hai attivo un webserver, il server stesso deve avere abbastanza memoria per servire i visitatori del sito. In caso contrario il sito diventerà molto lento, o peggio può “andare giù” nei picchi di traffico, semplicemente perché la memoria diventerebbe troppo poca. Un po’ come accade ai PC.

Ma vediamo ora i cinque comandi alternativi:

1_ Il comando “free”

Il comando free è forse il più semplice dei comandi per controllare l’utilizzo della memoria su Linux. Ecco un esempio veloce:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3,8G        2,7G        157M        267M        915M        565M
Swap:          2,0G        641M        1,4G

L’opzione -h mostra i dati in un formato facilmente leggibile dall’occhio umano. Il totale di 3,8G è il totale della RAM installata (4GB). La colonna used mostra la ram utilizzata dal sistema, in questo caso 2,7G. L’output si spiega facilmente da solo.

2_ Il comando “/proc/meminfo”

Il prossimo comando per controllare la congestione della RAM è leggere il file /proc/meminfo.

In realtà la directory di sistema /proc/ non contiene alcun file. Il contenuto sono file virtuali che contengono informazioni dinamiche circa il sistema in uso e il kernel.

$ cat /proc/meminfo 
MemTotal:        3938504 kB
MemFree:          274104 kB
MemAvailable:     538012 kB
Buffers:           30208 kB
Cached:           592216 kB
SwapCached:        37948 kB
Active:          2583536 kB
Inactive:         830584 kB
Active(anon):    2364820 kB
Inactive(anon):   609264 kB
Active(file):     218716 kB
Inactive(file):   221320 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:       2097148 kB
SwapFree:        1186988 kB
Dirty:               320 kB
Writeback:             0 kB
AnonPages:       2777800 kB
Mapped:           310684 kB
Shmem:            182244 kB
Slab:             112400 kB
SReclaimable:      56800 kB
SUnreclaim:        55600 kB
KernelStack:       12032 kB
PageTables:        67464 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     4066400 kB
Committed_AS:    8606840 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      273724 kB
DirectMap2M:     3819520 kB

Sono interessanti i valori relativi a MemTotal, MemFree, Buffers, Cached, SwapTotal, SwapFree. Indicano gli stessi valori del comando free.

3_ il comando “vmstat”

Il comando vmstat con l’opzione -s mostra le statistiche di utilizzo della RAM, più o meno come il comando precedente. Ecco un esempio:

$ vmstat -s
       3938504 K total memory
       3055616 K used memory
       2634584 K active memory
        824360 K inactive memory
        228428 K free memory
         35676 K buffer memory
        618784 K swap cache
       2097148 K total swap
        933456 K used swap
       1163692 K free swap
        323777 non-nice user cpu ticks
          1544 nice user cpu ticks
         80596 system cpu ticks
        506483 idle cpu ticks
         24004 IO-wait cpu ticks
             0 IRQ cpu ticks
          1124 softirq cpu ticks
             0 stolen cpu ticks
       7303873 pages paged in
       5460784 pages paged out
         22090 pages swapped in
        256081 pages swapped out
      14156008 interrupts
      32916209 CPU context switches
    1589867624 boot time
         32561 forks

4_ il comando “top”

Top è usato generalmente per controllare la RAM e la congestione del processore. Ad ogni modo riporta anche la quantità totale di RAM. Le prime righe dell’output mostrano le informazioni che ci interessano:

top - 10:00:02 up  2:06,  3 users,  load average: 0,87, 1,29, 1,35
 Tasks: 247 total,   2 running, 202 sleeping,   0 stopped,   0 zombie
 %Cpu(s): 14,2 us,  5,9 sy,  0,0 ni, 71,5 id,  8,1 wa,  0,0 hi,  0,3 si,  0,0 st
 KiB Mem :  3938504 total,   496344 free,  2890560 used,   551600 buff/cache
 KiB Swap:  2097148 total,  1120172 free,   976976 used.   620624 avail Mem 

La parte interessante sono i valori relativi a “KiB Mem” e “KiB Swap“. Indicano il totale, la memoria libera e quella utilizzata.

  Trasferire file di grandi dimensioni velocemente sulla rete con Netcat

5_ il comando “htop”

Molto simile al comando top (non solo nel nome), anche htop ci mostra informazioni sulla RAM, ma in modo più leggibile e dinamico.

Informazioni sulla RAM con “dmidecode”

Uno dei comandi che in assoluto mostrano il maggior numero di informazioni sulla RAM è sicuramente dmidecode.

$ sudo dmidecode -t 17
 dmidecode 3.1
 Getting SMBIOS data from sysfs.
 SMBIOS 2.5 present.
 Handle 0x000D, DMI type 17, 27 bytes
 Memory Device
     Array Handle: 0x000C
     Error Information Handle: No Error
     Total Width: 64 bits
     Data Width: 64 bits
     Size: 2048 MB
     Form Factor: SODIMM
     Set: 1
     Locator: M1
     Bank Locator: Bank 0
     Type: Reserved
     Type Detail: Synchronous
     Speed: 800 MT/s
     Manufacturer: Mfg 0
     Serial Number: 1234-B0
     Asset Tag: Not Specified
     Part Number: SODIMM000
 Handle 0x000E, DMI type 17, 27 bytes
 Memory Device
     Array Handle: 0x000C
     Error Information Handle: No Error
     Total Width: 64 bits
     Data Width: 64 bits
     Size: 2048 MB
     Form Factor: SODIMM
     Set: 1
     Locator: M2
     Bank Locator: Bank 1
     Type: Reserved
     Type Detail: Synchronous
     Speed: 800 MT/s
     Manufacturer: Mfg 1
     Serial Number: 1234-B1
     Asset Tag: Not Specified
     Part Number: SODIMM001

Conclusioni

Tutte le soluzioni citate sono di vitale importanza in tutti gli ambiti in cui l’interfaccia grafica ci sia preclusa. Nel caso stessimo lavorando su un computer classico con una gui installata i software più semplici sono “gnome-system-monitor” per Gnome e “ksysguard” per KDE.

Entrambi mostrano la memoria totale, utilizzata, libera, la swap, il carico della CPU e della rete con una interfaccia grafica semplice da interpretare.


TheJoe

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

0 commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.