Jump to content
Sign in to follow this  
-=SPECIALWORLD83=-

Utilizzo della memoria in linux, la variabile "swappiness"

Recommended Posts

Questa piccola guida vuole provare a spiegare come il Kernel Linux gestisce la Memoria. In particolare però verrà messo in risalto come il particolare utilizzo della Ram possa ridurre le prestazioni del sistema. Vedremo quindi come poter ovviare a questo problema.

 

TUTTI i processori a 32 bit leggono SEMPRE esattamente 4 GIGA di ram, ovvero 2^32 bit. Anche se in realtà di ram fisica, solitamente se ne possiede molta di meno!

 

TUTTI i processori a 64 bit invece leggono SEMPRE esattamente 16 EXA di ram! (è la verità!), ovvero 2^64 bit

 

le persone che dicono di avere server 32 bit con + di 4 giga dicono una fesseria, in realtà a quei processori vengono aggiunti 4 bit, si passa quindi da 32 a 36 bit per un totale di 2^36 bit = 64 GIGA di ram

 

Continuiamo la trattazione sui processori 32 bit ma il discorso si può ovviamente allargare ai 36 e 64 bit.

 

------------------------------------------

 

I computer a un 32 bit leggono SEMPRE e ripeto SEMPRE 4 GIGA di ram, tutti i programmi sono creati per lavorare con 4 GIGA di ram (nei 64, anche se è possibile, nessuno usa 16 EXA, sono troppi).

 

Questo dovrebbe far intuire come mentre un computer lavora si venga a creare un collo di bottiglia quando i dati passano per la tua ram fisica!

 

Ma come gestisce questa memoria il kernel linux?

 

Nella ram fisica la spazio è "diviso" tra "due tipi di memoria"

 

* il primo tipo è quella occupata dai programmi in esecuzione (e NON si tocca)

 

* la seconda è quella usata dalla cache del disco ovvero uno cache che serve a velocizzare l'accesso in scrittura/lettura al filesystem (e qui entra in gioco la swappiness)

 

Quando la ram fisica risulta totalmente occupata si passano le informazioni meno referenziate (con bassa priorità) dalla ram alla swap, scrivere nella swap però è un'operazione molto lenta, circa 10 volte più lenta rispetto alla ram!

 

il kernel (a partire dalla 2.6) linux gestisce la tendenza di scrivere sulla swap secondo un algoritmo:

 

tendenza a swappare = mapped_ratio/2 + distress + vm_swappiness

 

le prime due sono "inviolabili" (e non mi dilungo su cosa siano perchè onestamente non ricordo!) ma la variabile di swappines no!, essa ci permette di ridurre la cache del disco, permettendoci di liberare ram e quindi non swappare!

 

di default la swappiness è settata a 60:

 

[[email protected] ~]$ cat /proc/sys/vm/swappiness

60

 

Ma noi la possiamo modificare tra 0 e 100. + è alto il valore + sarà la tendenza a swappare!

 

Modifichiamo quindi questo valore se notiamo particolari rallentamenti:

 

modifica temporanea

 

settiamo la swappines ad esempio a 30! da root digitiamo:

 

sysctl -w vm.swappiness=30

 

Vediamo come lavora il nostro pc, se tutto è ok possiamo rendere permanente la nostra modifica, altrimenti possimo provare a "giocare" e trovare il giusto settaggio.

 

modifica permanente

 

Aprimo con un qualisiasi editor di testo, da root, il file:

 

/etc/sysctl.conf

 

e aggungiamo questa riga in alto:

 

vm.swappiness = 30

 

spero di essere stato utile!.. BUONO STUDIO!

 

La guida funziona benissimo e l'apertura delle applicazioni e tutto e veramente ottimo, con capacità superiori alla media.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Who's Online   0 Members, 0 Anonymous, 20 Guests (See full list)

    There are no registered users currently online

×