Perché la cache nella mia memoria è sempre piena?


13

Ho 6 GB di RAM, processore i5 2.4GHZ con Ubuntu 11.10. Ho partizionato il mio HD in modo da avere 8 GB di swap.

Quando eseguo lo streaming online o apri diverse schede in Chromium, presto ho 4 GB di memoria nella cache. E penso che questo renda lento il mio Notebook. Durante lo streaming di un video, dopo alcuni minuti rallenta davvero e inciampa / scatta.

Quale potrebbe essere il problema? Come posso risolvere questo?

PS: inizialmente avevo 4 GB e recentemente aggiornato a 6 GB, ma non ho riscontrato un cambiamento significativo.

PPS: free -gnel terminale stampa questo:

               total       used       free     shared    buffers     cached
Mem:             5          2          3          0          0          0
-/+ buffers/cache:          1          4
Swap:            8          0          8

Cosa intendi con "RAM Cache" e come fai a sapere che si sta riempiendo?
Sergey,

Puoi eseguire free -g(nel terminale) quando riscontri il problema e includere l'output del comando nella tua domanda.
Portablejim

Sul pannello superiore ho un'applet che indica graficamente l'utilizzo di RAM e CPU. Quando lo clicco, mi dice che: "Mem: 2GB Cache 4GB"
Tobias

1
free -gdice che hai 3 GB di RAM libera. La memoria non è il tuo problema!
AMS

Ok, grazie per averlo chiarito, ma forse perché in quel momento non ero in streaming online? Ho appena fatto funzionare il cromo.
Tobias,

Risposte:


13

La memorizzazione nella cache dei dati è che la RAM dovrebbe rendere le cose più veloci, non più lente: recuperare ripetutamente le cose dal disco quando si ha memoria inutilizzata è semplicemente stupido. Se ti stai riversando nello spazio di swap, ciò influirà sulle prestazioni. Puoi facilmente capire se stai usando uno swap eseguendo System Monitor. Se il grafico dello spazio di swap non sta salendo nel momento in cui il problema inizia, il problema non è legato alla memoria.

Certamente, durante lo streaming video verrà memorizzato nella cache, ma ci vuole un bel po 'di video per riempire 6Gb! Mi aspetto che ci vorranno più di pochi minuti per scaricare tanti dati e molto altro per causare un problema!

Sei sicuro che qualcos'altro non sia il problema? Dire, forse raffreddando? Molti notebook hanno processori che hanno una durata eccessiva rispetto al sistema di raffreddamento. Questo è buono - offre prestazioni di picco elevate, ottimo per il traffico intenso, pur mantenendo il volume ridotto - ma non può mantenere le prestazioni per molto tempo prima che sia costretto a ricomporre la frequenza di clock o fondere. Il video può richiedere abbastanza processore, quindi non lo sai mai?

Ad ogni modo, dovresti essere in grado di vedere dall'uso della memoria se si sta scambiando o meno. In tal caso, si tratta di un problema software e questi possono essere risolti. :)


Sto usando solo l'1,8% di SWAP. Il raffreddamento non è il problema in quanto ho un pad di raffreddamento con due ventole. So che il video è ad alta intensità di processore, ma i5 quad core 2,4GH e 6 GB di RAM dovrebbero essere definitivamente sufficienti per uno streaming fluido.
Tobias,

L'1,8% di swap mi suggerisce che il tuo problema non è che hai esaurito la RAM. Sono d'accordo, fintanto che il tuo processore non è stato limitato, dovrebbe essere in grado di fare il lavoro.
AMS

Ok che forse è il browser stesso?
Tobias,

Grazie per le tue risposte, proverò a utilizzare un altro browser e farti sapere se il problema persiste. Grazie ancora, sei stato molto gentile e disponibile, lo apprezzo molto!
Tobias

11

Ho lo stesso problema, sembra che la cache non sia mai stata rilasciata ... Un esempio è stato quando ho estratto un repository e ho finito con una cache di 4 GB

Esempio:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7949       7425        523          0        112       4433
-/+ buffers/cache:       2879       5069
Swap:         7627          2       7625

Quello che ho fatto è stato eseguire il codice qui sotto (i commenti sono solo per sapere cosa sta succedendo), puoi creare uno script in modo da poterlo eseguire quando ne hai bisogno:

# To free pagecache:
#         echo 1 > /proc/sys/vm/drop_caches
# To free dentries and inodes:
#         echo 2 > /proc/sys/vm/drop_caches
# To free pagecache, dentries and inodes:
#         echo 3 > /proc/sys/vm/drop_caches
sudo sync && sudo sysctl -w vm.drop_caches=3

Dopo aver eseguito il codice sopra:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7949       2820       5129          0          2        407
-/+ buffers/cache:       2409       5539
Swap:         7627          2       7625

4
Questo non è un problema, ecco come funziona la cache della pagina. Manterrà le cose nella cache il più a lungo possibile, ma rilascerà automaticamente gli elementi quando aumenta la pressione della memoria da altre applicazioni. Cancellarlo manualmente non è necessario.
Cesio,

5
Potrebbe essere così, ma in tal caso l'algoritmo non è così buono. Perché dovrei avere più di 4 GB di cache e iniziare a utilizzare lo swap?
Carlo,

A proposito, mi piace questo articolo: link
Carlo,

1
Nel mio caso attuale sto verificando un enorme repository e tutti i file vengono memorizzati nella cache fino a quando non riempie la memoria, una volta lì inizia a scambiare invece di rilasciare la cache ...
Carlo,

Mi interessavo allo sviluppo del kernel .. Abbastanza sicuro che questo sia ancora "di progettazione". Se il kernel ritiene che una parte di un file abbia più probabilità di accedere di nuovo presto rispetto ad alcuni dati anonimi, cambierebbe i dati anon e manterrebbe la cache della pagina. Se sta prendendo la decisione giusta è una domanda diversa, ovviamente :)
Steve Dee,

0

Il mio suggerimento sarebbe quello di eseguire qualsiasi esploratore di processo (ad esempio Monitor di sistema) e controllare quale processo sta consumando così tanta memoria. pubblicalo qui e vedremo se puoi disattivarlo.

ps. ok, ho capito adesso. Scommetto che il suo "contenitore plugin" cresce con il tempo a causa del modo in cui utilizza la memoria. Immagino che sia perché è una porta dal sistema Gill Bates;). Ucciderlo non sarà di aiuto (uccidendolo si bloccheranno tutte le animazioni su ogni pagina, principalmente annunci pubblicitari ma anche video di Youtube). Inoltre, Chromium stesso ama gonfiarsi con il tempo, quindi l'unico modo per affrontarlo sarebbe probabilmente riavviarlo di volta in volta. Vedi se aiuta ...


In effetti, quando riavvio il browser, lo streaming funziona di nuovo senza problemi, tuttavia solo per 10 minuti. Quindi devo riavviare nuovamente il browser.
Tobias,

I processi utilizzati: Chromium 250MB Chromium 214 MB Chromium 150Mb, compiz 119 MB, zeitgeist-daemon 111 MB, cromo 70Mb, exe 24% di CPU e 60MB, Rhythmbox 50MB, ubuntuone-syndaemon 26MB ecc.
Tobias

Temo che il tuo problema possa essere causato dal browser stesso. Considera di passare a Firefox o a qualsiasi tua scelta, l'opinione degli utenti sul Web afferma che Chromium consuma circa 3 volte più memoria rispetto a qualsiasi altro browser "top line". Provaci. Installa, apri lo stesso numero di schede e confronta ...
Adam Kroczyk,

Lo farò. Grazie mille per il suggerimento. tutto il meglio
Tobias,
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.