utilizzo della memoria reale


15

se ho capito bene, nel seguente output prodotto da free, 3535m è la memoria libera effettiva disponibile per le applicazioni, vengono usati solo 413m, è corretto? serve qualche chiarimento sulla differenza tra Mem e - / + buffer / riga cache.

libero
             buffer condivisi gratuiti totali utilizzati memorizzati nella cache
Mem: 3949 3854 95 0 9 3431
- / + buffer / cache: 413 3535
Scambio: 2047 1322 725

Risposte:


16

La Mem: totalfigura è 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 la propria RAM);
  • memoria utilizzata dal kernel stesso.

Tale totale comprende:

  • 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 da free). (Sui sistemi attuali di solito vedrai valori diversi da zero perché sharedè stato riproposto per mostrare la memoria esplicitamente condivisa tramite un meccanismo di memoria condivisa . Sui sistemi più vecchi, includeva file mappati da più di un processo e memoria condivisibile che è rimasta condivisa dopo fork().)
  • 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 buffersè che i buffer devono essere salvati su disco prima di essere riutilizzati, mentre la cache è costituita da elementi che possono essere ricaricati dal disco);
  • used -buffers/cache: memoria utilizzata dalle applicazioni (e non paginata per lo scambio).

In breve, il sistema potrebbe funzionare senza buffer e cache, riservando RAM per le applicazioni ed eseguendo sistematicamente letture e scritture su disco senza alcuna memorizzazione nella cache. Le -/+ buffers/cachecifre indicano la quantità di RAM utilizzata direttamente dalle applicazioni ( usedcolonna) e la quantità di RAM non utilizzata dalle applicazioni ( freecolonna).

Sebbene ciò possa variare molto, un sistema sano in genere ha circa la metà della sua RAM dedicata alle applicazioni e la metà dedicata ai buffer e alla cache. A meno che tu non stia eseguendo un file server dedicato, il tuo sistema ha più RAM del necessario per quello che stai facendo. Se la free - buffers/cachecifra fosse bassa, ciò indicherebbe un sistema che non ha abbastanza RAM (contrariamente a una credenza diffusa, avere molta memoria dedicata ai buffer e alla cache è importante per le prestazioni del sistema e provare a riservare più memoria per le applicazioni sarebbe rallentare il 99,99% dei sistemi).

La swaplinea è semplice, mostra la quantità di swap in uso (o dalle applicazioni o per l' tmpfsarchiviazione) e la quantità che non lo è.


1
"condiviso: un concetto che non esiste più". Sembra che sia stato reintrodotto tra il 2011 e il 2016: unix.stackexchange.com/questions/307015/…
Marisha,

3

Sì hai ragione. Buffer e cache sono utilizzati dal sistema operativo ma sono immediatamente disponibili per le applicazioni. Il sistema operativo è disposto a invalidare e gettare via parte della cache per soddisfare la successiva richiesta di memoria.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.