next up previous contents index
Next: La cache di buffer Up: La gestione della memoria Previous: La condivisione dello spazio

   
Allocare lo spazio di swap

Alcuni vi diranno di allocare uno spazio di swap corrispondente al doppio della vostra memoria fisica, ma è una regola fittizia. Ecco come fare in modo corretto:

1.

Stimate di quanta memoria avete bisogno: calcolate la quantità più alta di memoria di cui avrete mai bisogno in una volta sola, cioè la somma di fabbisogno di memoria di tutti i programmi che volete far girare contemporaneamente. Lo potete fare facendo girare tutti i programmi che pensate di dover usare contemporaneamente.

Ad esempio, se volete usare X dovreste allocargli circa 8 MB, gcc vuole qualche megabyte (alcuni file hanno bisogno di moltissima memoria, fino a decine di megabyte, ma di solito quattro bastano), e così via. Il kernel userà per sé circa un megabyte, e i normali programmi di shell usano qualche centinaia di kilobyte (diciamo un megabyte tutti insieme). Non c'è bisogno di tentare di essere esatti, basta una stima rozza, magari dal lato pessimistico.

Ricordatevi che se ci sono diverse persone che usano il sistema in contemporanea consumeranno tutti della memoria; comunque, se due persone usano lo stesso programma contemporaneamente l'uso complessivo di memoria non è di solito doppio, dato che le pagine di codice e le librerie condivise vengono usate solo una volta. Per stimare le necessità di memoria sono utili i comandi free  e ps .

2.

Aggiungete un po' di memoria alla stima del passo 1 per sicurezza: la dimensione di alcuni programmi sarà sbagliata, o forse vi dimenticherete alcuni programmi che volete usare, ed è meglio avere un po' di spazio extra per qualsiasi evenienza. Un paio di megabyte dovrebbero andare bene (è meglio allocare troppo spazio di swap che troppo poco, ma non c'è bisogno di strafare e allocare l'intero disco, dato che lo spazio di swap inutilizzato è sprecato; vedi più avanti come fare per aggiungere altro swap). Inoltre, dato che si lavora meglio con i numeri pari, arrotondate il valore al megabyte superiore.

3.

Basandovi sul calcolo qui sopra sapete di quanta memoria avete bisogno in totale. Per allocare lo spazio di swap dovete dunque sottrarre la dimensione della memoria fisica dalla memoria totale, e saprete di quanto spazio di swap avete bisogno (in alcune versioni di UNIX dovete allocare dello spazio di swap anche per un'immagine della memoria fisica, quindi il totale calcolato nel passo 2 è lo swap necessario, e non dovete fare la sottrazione).

4.

Se lo spazio di swap calcolato è molto più grande della memoria fisica (più del doppio) dovreste investire in più memoria fisica, altrimenti le prestazioni saranno troppo basse.

È una buona idea avere comunque dello spazio di swap, anche se i calcoli indicano che non ne avete bisogno. Linux usa lo spazio di swap in modo piuttosto aggressivo, in modo che possa essere tenuta libera il più memoria fisica possibile. Linux manderà in swap delle pagine di memoria che non vengono usate anche se non c'è ancora bisogno di memoria per altre cose. Un comportamento del genere evita di aspettare lo swap nel momento in cui ce n'è bisogno--si può fare prima, quando il disco altrimenti non è utilizzato.

Lo spazio di swap può essere suddiviso tra vari dischi, in modo da poter in qualche modo migliorare le prestazioni, a seconda delle velocità e degli schemi di accesso ai dischi. Potete fare degli esperimenti, ma farlo in modo corretto non è semplice. Non credete a chi dice che uno schema è sicuramente superiore ad un altro, perché non sempre è vero.


next up previous contents index
Next: La cache di buffer Up: La gestione della memoria Previous: La condivisione dello spazio
root
1998-11-08