Come ottimizzare lo spazio occupato su hard disk dalla memoria virtuale?
  • Questa Faq tratta operazioni consigliabili solo per utenti esperti

Fino a Jaguar (versione 10.2.x di Mac OS X) gli swapfile, ovvero i file della memoria virtuale che si trovano in /private/var/vm, avevano una dimensione fissa di circa 80 MB.

Con Panther (Mac OS X 10.3) e Tiger (Mac OS X 10.4) non è più così: il primo swapfile ha una dimensione di 64 MB, gli altri hanno una dimensione tale da raddoppiare la memoria virtuale già presente.

Ecco ad esempio le dimensioni dei primi 6 swapfile:

swapfile0 -  64 MB (totale:  64 MB)
swapfile1 -  64 MB (totale: 128 MB)
swapfile2 - 128 MB (totale: 256 MB)
swapfile3 - 256 MB (totale: 512 MB)
swapfile4 - 512 MB (totale:   1 GB)
swapfile5 -   1 GB (totale:   2 GB)

Questo comportamento però può risultare problematico in caso di scarsa disponibilità di spazio sul disco fisso. Volendo si può quindi tornare all'antico: basta modificare (con privilegi di root) il file /etc/rc e andare a sostituire

dynamic_pager -F ${swapdir}/swapfile

con

dynamic_pager -H 40000000 -L 160000000 -S 80000000 -F ${swapdir}/swapfile

oppure, nel caso di Tiger (10.4.3 o successivo):

dynamic_pager -H 40000000 -L 160000000 -S 80000000 ${encryptswap} -F ${swapdir}/swapfile

La sintassi:

  • -S imposta la dimensione (in byte) fissa degli swapfile
  • -H definisce il valore minimo di memoria virtuale libera al di sotto del quale viene creato un nuovo swapfile
  • -L definisce il valore massimo di memoria virtuale libera al di sopra del quale la memoria virtuale viene compattata e gli swapfile in eccesso eliminati
  • ${encryptswap} permette, se impostato, di abilitare la crittazione degli swapfile, per una maggior sicurezza

Chiaramente si possono usare i valori di S, H e L che si preferiscono, purché H < S e L > H+S

Più si abbassano i valori di H e L (sempre nel rispetto delle regole suddette), più diminuisce lo spazio disco occupato da memoria virtuale non utilizzata.
Abbassando L si aumenta però al contempo la frequenza con cui la memoria virtuale viene compattata e gli swapfile in eccesso eliminati, con un possibile impatto sulle prestazioni generali del sistema, quindi occhio a non esagerare.

[ Home | Elenco delle FAQ | Forum | Segnalazioni | Risorse | Feed RSS ]