Non era nemmeno mia intenzione.
Io dal 96.E' dal '99 che utilizzo linux e da sempre, anche prima che la gestione della memoria da parte del kernel fosse riscritta con un modello di liste doppie circolari intersecate, è sempre stata buona regola utilizzare uno swap superiore o come minimo uguale al quantitativo di ram (anddentrarsi sui motivi di ciò è un po lungo e noioso per gli utenti meno interessati ad aspetti tecnici).
E ho seguito dappertutto le discussioni sul quantitativo di RAM da usare.
La fonte forse più autorevole è lo "Swap mini HOWTO", in cui si dice:
Typical total swap space size is equal to your system's RAM size.
Early versions of Linux 2.4 (through 2.4.9) liked swap space size
of 2 * system RAM size, but that's no longer the case.
Il motivo per cui si consigliava di fare una swap pari al doppio della RAM era semplicemente che i vecchi Unix mappavano tutta la RAM sulla swap, allocandola, praticamente, in modo statico. Forse per migliorare le prestazioni e non dover cercare uno spazio libero su disco al momento dello swapoff.
Quell'howto è comunque del 2003, e a quei tempi avere 256 MB di RAM era grasso che cola. Siccome le applicazioni erano spesso derivate da Unix, tendevano ad allocare RAM come se non finisse mai, quindi avere una swap pari ad altri 256 MB (o 512) era consigliabile, altrimenti le applicazioni andavano in out of memory.
Non c'è (in Linux) nessun motivo tecnico per cui la swap deva essere maggiore della RAM, se non in caso di ibernazione (l'immagine della RAM viene scritta nella swap).
Il totale RAM+swap deve essere sufficiente a farci stare il software che usi comunemente. Se hai 4 GB e ne usi normalmente 2, è inutile mettere una swap, soprattutto su un sistema desktop, perché prima o poi il sistema swapperà qualcosa per far spazio ai buffer e alla cache per il disco, e quando ti riservirà quella memoria swappata perderai i buffer e anche un sacco di tempo a fare swap-in.
Più swap metti e più probabilmente ti capiterà.
Un po' di swap, d'altro canto, può essere utile proprio per fare swap-out di pezzi di codice mai usati, come le routine di lettura dei file di config dei vari software o quelle di inizializzatione, usate solo all'avvio di un programma.
Il quantitativo di operazioni di swap è proporzionale all'occupazione di swap, non alle sue dimensioni.E' interessante la tua teoria dei 64Mb, ma il quantitativo di operazioni I/O sullo swap sarebbe talmente alto che probabilmente non riusciresti neppure a digitare una serie di tre caratteri sul terminale senza lag spaventosi. Se hai documentazione a riguardo ti prego di passarmi link o altro perchè mi piacerebbe capire le basi della tua teoria....mi farebbe comodo risparmiare 4 gb di spazio che ra ho destinati allo swap.
Se hai 64 MB di RAM e usi software che ne occupa 100, per forza vai in trashing, ma a quel punto è più furbo mettere altri 64 MB di RAM o usare software meno grosso.
Il punto è cercare di usare sempre software che stia nella RAM normale, e sfruttare la swap solo per ricavare un po' di spazio per aumentare (di poco) i buffer.
D'altronde, sul mio PC ho RAM da 6 GB/sec, mentre il disco, in lettura, fa 60 MB/sec (e in scrittura la metà). Quindi è 100 volte più lento. Se conti anche il tempo di accesso (5 microsecondi contro 5 millisecondi, 1000 volte più lento), a spanne swappare a botte di 4 kb "costa" 3-400 volte di più che a usare la RAM, quindi un'operazione che richiede 1 secondo può arrivare a richiedere qualche decina di minuti, se sparsa per diverse pagine di RAM.
Questo rapporto c'è sempre stato, ma una volta era necessario avere più memoria per poter lavorare, e la RAM costava tantissimo, ora no.
Caso particolare quello degli embedded, in cui non puoi aggiungere RAM, ma lì cerchi di trovare il miglior compromesso tra swap allocata e programmi in esecuzione, cercando di ridurre al minimo lo swapping (quindi comunque evitando di andare oltre le dimensioni della RAM)
Bye.