Svuotare la Cache RAM

Gio, 11/02/2010 - 09:01

Svuotare la Cache RAM

Inviato da Moreno 9 commenti
1) Introduzione

Cominciamo a dire che questa procedura non serve a molto e quasi sicuramente non aumenterà le prestazioni della vostra macchina, diciamo che può essere utile per verificare eventuali patologie nell'uso della RAM da parte di qualche processo.

Facciamo un esempio:

Il mio serverino domestico ha 2GiB di RAM e poco dopo l'avvio mi indica questa disponibilità di RAM.

# free -m
 
             total       used       free     shared    buffers     cached
Mem:          2014        277       1737          0         52         96
-/+ buffers/cache:        128       1886
Swap:         2094          0       2094

Quindi risulta un utilizzo di 277MiB di cui 52 in buffers e 96 in cache

Ora , per esempio, faccio trasferire da un client, tramite Samba, una ISO da qualche GiB.
Dopo questa operazione la disponibilità di RAM risulta

# free -m
             total       used       free     shared    buffers     cached
Mem:          2014       1924         90          0         20       1788
-/+ buffers/cache:        114       1900
Swap:         2094          0       2094

Come si può vedere ora la memoria libera ammonta solamente a 90MiB dato che ben 1788MiB sono assegnati alla cache.
Questo, come già detto, non vuol dire nulla e se copio un altra ISO la velocità di trasferimento non cambia, semplicemente la cache viene riciclata ed infatti il consumo di swap continua ad essere 0.

Se invece c'è qualcosa di patologico in atto questo riciclo può non funzionare ed allora questa procedura può tornare utile per cercare di mitigare il problema o per cercare di individuarlo.

Il comando che vi esporrò l'ho trovato su internet scartabellando fra vari siti, lo riporto qui per nostra comodità.

2) Procedura

La procedura da seguire è la seguente:

2.1) Apriamo un terminale

Innanzi tutto occorre aprire un terminale con Menu -> Strumenti -> konsole

2.2) Diventiamo root

$ su -
Password: <strong>LaPasswordDiRoot</strong>
#

2.3) Svuotiamo la cache RAM

# sync; echo 3 > /proc/sys/vm/drop_caches
# 

Dato che la cache viene prevalentemente usata per velocizzare le operazioni sul disco svuotarla senza precauzioni può essere pericoloso.
Al fine di evitare disastri è INDISPENSABILE dare il comando sync che sincronizza il disco.

Come vedete la procedura è semplicissima e l'effetto finale è il seguente:

# free -m
 
             total       used       free     shared    buffers     cached
Mem:          2014        141       1873          0          0         33
-/+ buffers/cache:        107       1907
Swap:         2094          0       2094

Ciao Ciao, Moreno





Commenti

Ritratto di Ilario
#1

Inviato da Ilario il Dom, 14/02/2010 - 11:12.

Re: Svuotare la Cache RAM

fantastico!, rpoprio quello che mi serviva, dopo aver trafugato svariati gb di dati, mi trovavo sempre con la ram satura di cache!
Grazie moreno!!!



Ritratto di Moreno
#2

Inviato da Moreno il Dom, 14/02/2010 - 12:12.

Re: Svuotare la Cache RAM

Ciao

Sono contento che ti sia tornata utile.

Ciao Ciao, Moreno

Addio, e grazie per tutto il pesce.
Avatar by moonlight-dream.



Ritratto di maurelio79
#3

Inviato da maurelio79 il Mer, 24/02/2010 - 04:20.

Re: Svuotare la Cache RAM

Ciao Moreno, grazie mille per la dritta.
Vorrei sottoporti la mia situazione. La mia cached era 2200, per curiosità ho dato il comando e giustamente la cache si è svuotata, dopo ho ridato più volte il comendo free -m per vedere cosa succedeva e ho notato che la cache risaliva molto velocemente:
[maurelio@localhost ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          3040       2801        239          0         80       2200
-/+ buffers/cache:        520       2520
Swap:         2861          1       2859
[maurelio@localhost ~]$ su
Password:
[root@localhost maurelio]# sync; echo 3 > /proc/sys/vm/drop_caches
[maurelio@localhost ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          3040        557       2483          0          0         73
-/+ buffers/cache:        484       2556
Swap:         2861          1       2859
[maurelio@localhost ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          3040        663       2377          0          1        172
-/+ buffers/cache:        489       2551
Swap:         2861          1       2859
[maurelio@localhost ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          3040        696       2344          0          2        206
-/+ buffers/cache:        487       2552
Swap:         2861          1       2859
[maurelio@localhost ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          3040        752       2287          0          2        264
-/+ buffers/cache:        485       2554
Swap:         2861          1       2859
[maurelio@localhost ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          3040        981       2058          0          3        487
-/+ buffers/cache:        490       2550
Swap:         2861          1       2859
[maurelio@localhost ~]$ free -m
             total       used       free     shared    buffers     cached
Mem:          3040       1051       1989          0          4        561
-/+ buffers/cache:        485       2555
Swap:         2861          1       2859

Sino ad assestarsi su un 672. Secondo te da cosa potrebbe dipendere tale comportamento? Inoltre noto lo swap è sempre su 1/2MB, non avevo nulla aperto mentre facevo tale procedurra.

Ciauz

Debian Squeeze+Mandriva2009 on Asus X59SLseries
http://www.mylinuxexperience.org/



Ritratto di Moreno
#4

Inviato da Moreno il Mer, 24/02/2010 - 07:03.

Re: Svuotare la Cache RAM

Ciao

Non saprei dirti chi l'adopera però è certo che viene adoperata, la RAM è li per questo.

Per avere maggiori informazioni devi esplorare /proc

Ciao Ciao, Moreno

Addio, e grazie per tutto il pesce.
Avatar by moonlight-dream.



Ritratto di maurelio79
#5

Inviato da maurelio79 il Mer, 24/02/2010 - 14:08.

Re: Svuotare la Cache RAM

Interessante, darò un occhio a /proc.
La situazione non mi preoccupa, perchè comunque il Sistema è molto reattivo, sono curioso di capire cosa succede.
Comunque appena avviato, free -m mi da questo output:
                   total       used       free     shared    buffers     cached
Mem:          3040       1127       1913          0         17             835
-/+ buffers/cache:       274        2765
Swap:         2861          0       2861
Lo swap in uso risulta 0, quindi ciò mi tranquillizza. Quello che mi preme capire è perchè ieri mi segnava 1/2 MB di swap, quando ancora avevo parecchia ram libera.
Ciauz

Debian Squeeze+Mandriva2009 on Asus X59SLseries
http://www.mylinuxexperience.org/



Ritratto di Moreno
#6

Inviato da Moreno il Mer, 24/02/2010 - 15:19.

Re: Svuotare la Cache RAM

Ciao

Più vuoi sapere e più a fondo devi scavare.

Effettivamente quella dell'uso della swap è un campanello d'allarme decisamente più rumoroso di quello della cache.

Ciao Ciao, Moreno

Addio, e grazie per tutto il pesce.
Avatar by moonlight-dream.



Ritratto di Ilario
#7

Inviato da Ilario il Ven, 19/03/2010 - 16:39.

Re: Svuotare la Cache RAM

anche io ho il problema della swap, mi usa sempre quel mb nonostante però la ram sia libera, perche?
ho la 2010.0 tutta di default, apparte kde4.4.0,comunque lo faceva anche da prima, e su tutte le mie due macchine 32 e 64 bit!



Ritratto di Moreno
#8

Inviato da Moreno il Ven, 19/03/2010 - 17:03.

Re: Svuotare la Cache RAM

Ciao

E ti stai a preoccupare per 1 MiB?? magari è un Bug di arrotondamento di Free

Ciao Ciao, Moreno

Addio, e grazie per tutto il pesce.
Avatar by moonlight-dream.



Ritratto di tom2004
#9

Inviato da tom2004 (non verificato) il Ven, 19/03/2010 - 18:05.

Re: Svuotare la Cache RAM

Citazione:

anche io ho il problema della swap, mi usa sempre quel mb nonostante però la ram sia libera, perche?

il tuo SO ha deciso che aveva in RAM 1 MB di roba inutile ed ha deciso di appoggiarla su disco,
in modo da avere RAM libera se servisse, non ci vedo nulla di male.... anzi il mio server ne gode Smile

se questo comportamento non ti piace puoi regolarlo differentemente:

http://www.linode.com/wiki/index.php/Swappiness

ciao Smile