Guida dell'amministratore di sistema di Linux: Versione 0.6.2 | ||
---|---|---|
Indietro | Capitolo 5. La gestione della memoria | Avanti |
Alcuni vi diranno di allocare uno spazio di swap corrispondente al doppio della vostra memoria fisica, ma è una regola approssimativa. Ecco come fare in modo corretto:
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 del fabbisogno di tutti i programmi che volete far girare contemporaneamente: lo potete fare facendoli girare tutti insieme.
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, le normali shell ed altri programmi qualche centinaia di kilobyte (diciamo un megabyte tutti insieme). Non c'è bisogno di tentare di essere esatti, basta una stima rozza, magari per eccesso.
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'utilizzo 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.
Aggiungete per sicurezza un po' di memoria alla stima del passo 1: 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 sopra come fare per aggiungere altro spazio). Inoltre, dato che si lavora meglio con le cifre tonde, arrotondate il valore al megabyte superiore.
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 (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).
Se lo spazio di swap calcolato è molto più grande della memoria fisica (più del doppio) dovreste investire in più memoria fisica, o 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 lo usa in modo piuttosto aggressivo, in modo che possa essere tenuta libera più memoria fisica possibile, e 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 di fare swap nel momento in cui ce n'è bisogno---si può fare prima, quando il disco altrimenti non sta lavorando. Lo spazio di swap può essere suddiviso tra vari dischi, in modo da poter in qualche modo migliorare le prestazioni, a seconda delle loro velocità e degli schemi di accesso. Potete fare degli esperimenti con schemi diversi, ma farlo in modo corretto non è semplice. Non credete a chi dice che uno schema è sicuramente superiore ad un altro, perché non sempre è vero.