se ho capito bene, nel seguente output prodotto da free, 3535m è la memoria libera effettiva disponibile per le applicazioni, vengono utilizzati solo 413m, è corretto? ho bisogno di qualche chiarimento sulla differenza tra Mem e -/+ buffer/cache row.
free -m total used free shared buffers cached Mem: 3949 3854 95 0 9 3431 -/+ buffers/cache: 413 3535 Swap: 2047 1322 725
Risposta accettata:
Il Mem: total
la cifra è la quantità totale di RAM che può essere utilizzata dalle applicazioni. Questa è la RAM totale installata sul sistema, meno:
- memoria riservata da dispositivi hardware (spesso memoria video se la scheda grafica non ha una propria RAM);
- memoria utilizzata dal kernel stesso.
Quel totale include:
free
:memoria attualmente utilizzata per qualsiasi scopo;shared
:un concetto che non esiste più. Viene lasciato nell'output per compatibilità con le versioni precedenti (ci sono script che analizzano l'output dafree
). (Sui sistemi attuali in genere vedrai valori diversi da zero perchéshared
è stato riproposto per mostrare la memoria esplicitamente condivisa tramite un meccanismo di memoria condivisa. Sui sistemi precedenti, includeva file mappati da più di un processo e memoria condivisibile che rimaneva condivisa dopofork()
.)buffers
:memoria supportata da file e che può essere scritta su disco se necessario;cache
:memoria supportata da file e che può essere recuperata in qualsiasi momento (la differenza con ibuffers
è che i buffer devono essere salvati su disco prima di essere riutilizzati, mentre la cache è composta da elementi che possono essere ricaricati dal disco);used -buffers/cache
:memoria utilizzata dalle applicazioni (e non paginata per lo scambio).
In un pizzico, il sistema potrebbe funzionare senza buffer e cache, riservando RAM per le applicazioni ed eseguendo sistematicamente letture e scritture del disco senza alcuna memorizzazione nella cache. I -/+ buffers/cache
le cifre indicano la quantità di RAM utilizzata direttamente dalle applicazioni (used
colonna) e la quantità di RAM non utilizzata dalle applicazioni (free
colonna).
Anche se questo può variare molto, un sistema sano in genere ha circa metà della sua RAM dedicata alle applicazioni e metà dedicata ai buffer e alla cache. A meno che tu non stia utilizzando un file server dedicato, il tuo sistema ha più RAM di quella necessaria per quello che stai facendo attualmente. Se il free - buffers/cache
la cifra era bassa, ciò indicherebbe un sistema che non ha abbastanza RAM (contrariamente a una credenza diffusa, avere molta memoria dedicata a buffer e cache è importante per le prestazioni del sistema e provare a riservare più memoria per le applicazioni farebbe 99,99 % di sistemi più lenti).
Lo swap
linea è semplice, mostra la quantità di swap che è in uso (o dalle applicazioni o per tmpfs
spazio di archiviazione) e l'importo che non lo è.