[Linux-Biella] Info su swap

Daniele Segato daniele.bilug a gmail.com
Dom 15 Mar 2009 14:18:02 CET


Il giorno dom, 15/03/2009 alle 11.57 +0100, Pierpaolo Martinello ha
scritto:
> Vi posto questo link, mi sembra interessante
> sopratutto per chi ha tanta ram!!!
> http://linux.billera.eu/?p=426#comment-580

la cosa non è così semplice...
l'autore di quel post è ignorante in materia.

lo swap è qualcosa che hanno quasi tutti i sistemi operativi. È un
meccanismo che è stato pensato per ovviare alle limitate quantità di
ram.
quando la ram finisce si copia parte di essa sul disco.

Il sistema operativo cerca di copiare su disco prima la ram non
utilizzata.

Prendiamo in esame i 2 estremi
swappines = 0: swappa solo se la ram è totalmente piena
swappines = 100; swappa sempre e comunque appena puoi

mettendo una swappines = 100 appena una parte di ram risulta non
utilizzata verrà copiata sul disco.

mettendola = 0 si aspetta di aver riempito la ram per spostare ciò che
non è utilizzato sul disco.

Ora.. il problema è la definizione di "ram non utilizzata"

paradossalmente mettere una swappines = 100 è in genere PIÙ performante
di una swappines = 0

il motivo è semplice

se riempi la ram appena apri qualcos'altro quel qualcos'altro dovrà
attendere parecchio che venga liberato spazio in ram
inoltre verrà "frammentato" l'utilizzo della ram.

viceversa con una swappines = 100 una nuova applicazione troverà sempre
spazio in ram senza attese.

come accennavo prima il problema è la definizione di "memoria non
utilizzata"

ad esempio: se io apro un software di posta che ogni 5 minuti fa un
check per nuova posta.. quand'è che la memoria necessaria a fare questo
check è "non più utilizzata"?
con una swappines = 100 ogni 5 minuti verrà ricaricata dal disco quella
parte di memoria che serve a fare il check rendendo la cosa molto lenta

per questa ragione il valore 60 è un ottimo valore di default
ne troppo bassa ne troppo alta è un bene!

considerate che 60 significa che il sistema operativo comincerà a
swappare dopo che la ram è occupata al 40%, o se preferite cerca di
mantenere il 60% della ram libera per altre applicazioni...

nonostante ciò esiste la ram di cache: oltre il 40% della ram la memoria
viene messa su disco nella partizione di swap ma non viene rimossa dalla
ram dove rimane come "cache".
In altre parole quel 60% è libero in caso di bisogno ma se torna ad
essere utile qualcosa che era stata messa nella swap e che è ancora
nella parte in cache viene utilizzata senza rieffettuare lo swapping.


concludendo: tenetevi la swappiness a 60 che va bene... semmai potete
spostarla fino a 40.. di più (o di meno) non ha senso.

concludendo2: imparate a documentarvi su ciò che leggete e non prendete
tutto come oro colato!

ciao,
Daniele



Maggiori informazioni sulla lista Linux