Come è il Linux calcolo MemFree

Sto cercando di capire il mio linux embedded utilizzo della memoria.

Utilizzando la massima utilità e il processo del file /proc/meminfo posso vedere quanta memoria virtuale di un processo, e la quantità di memoria fisica disponibile per il sistema. Ma sembrerebbe per ogni processo la memoria virtuale può essere molto più elevata rispetto alla memoria fisica. Questo è un sistema embedded lo swapping della memoria è disattivato.(SwapTotal = 0)

Come è linux calcolare la quantità di memoria fisica libera? Come non sembra essere di contabilità per tutto allocata in uno spazio di memoria virtuale.

InformationsquelleAutor simon | 2009-09-10

 

2 Replies
  1. 12

    MemFree in /proc/meminfo è un conteggio di quante pagine sono liberi nella buddy allocatore. Questo compagno allocatore è l’unità fondamentale di allocazione di memoria fisica nel kernel; tuttavia, ci sono un sacco di modi le pagine possono essere restituiti per il compagno allocatore nel momento del bisogno, ad esempio, liberando vuoto Lastre, eliminando cache/buffer RAM (anche se questo significa invalidare Pte in un processo in esecuzione), oppure, come ultima risorsa, scambiando le cose.

    Infatti, MemFree è generalmente controllato per essere solo il 5-10% del totale della RAM fisica, con qualsiasi extra di RAM liberi di essere cooptato in cache con il passare del tempo. Come tale, MemFree da solo è molto incompleta, vista la generale situazione di memoria.

    Come per la memoria virtuale (VSIZE) di un determinato processo, questo si riferisce alla somma delle dimensioni di tutti mappati in memoria segmenti di spazio di indirizzi del processo. Tuttavia, non tutti questi saranno fisicamente presenti – alcuni possono essere paging al momento del primo accesso e come tale non verrà registrato come memoria in uso fino a quando effettivamente utilizzato. La dimensione residente (RSIZE) è una visione più accurata, in quanto si registra solo le pagine che vengono mappati in adesso – anche se questo può anche non essere accurate se una determinata pagina è mappato in più indirizzi virtuali (che è molto comune quando si considera più processi – librerie condivise hanno lo stesso fisico di RAM mappati tutti i processi che utilizzano questa libreria)

    • Penso che questo è in realtà le risposte, il punto cruciale della mia confusione “…La dimensione residente (RSIZE) è una visione più accurata, in quanto si registra solo le pagine che vengono mappati in questo momento…” Quindi la mia ipotesi è che se un qualsiasi processo deciso di provare ad allocare tutta la sua VSIZE sarebbe anche aumentare la memoria fisica a tale importo.
  2. 3

    Provare a utilizzare htop. Si dovrà installare sudo apt-get install htop o yum install htop, a prescindere.

    Mostrerà una rappresentazione più accurata di utilizzo della memoria.

    Fondamentalmente, si tratta di un “buffer/cache”.

    free -m
    

    Guardare la colonna libera nel buffer/cache di fila, questa è una rappresentazione più accurata di ciò che è effettivamente disponibile.

                 total       used       free     shared    buffers     cached
    Mem:          3770       3586        183          0        112       1498
    -/+ buffers/cache:       1976       1793
    Swap:         7624        750       6874
    
    • Purtroppo non ha l’aspetto di htop è disponibile attraverso Busybox sul mio sistema embedded.

Lascia un commento