Starai bene anche con 1GiB (e probabilmente meno) di swap. Il mio computer di lavoro in genere non utilizza più di 140-150 MiB. Un gigabyte è un eccesso di provisioning per questo.
A meno che non si eseguano attività di calcolo che richiedono insiemi di dati in centinaia di gigabyte e (questo è importante!) Si accede ai dati in modo più o meno di accesso una volta, non si vorrà mai avere uno scambio molto più grande di quello. Ma ancora una volta, la semplice mappatura della memoria di un file di dati funziona altrettanto bene per quell'applicazione.
Ma più scambio aiuta di più, giusto? Più di tutto è sempre meglio!
Considera la differenza che uno scambio di, diciamo, 16GiB farà (o pensa a 64GiB). Se non usi mai questi 16GiB, non potresti nemmeno averli messi da parte in primo luogo. Ma se li usi, cosa succede? Il disco, rispetto alla memoria principale, è estremamente lento. Anche con un SSD SATA-600, il trasferimento di 16GiB richiede tra 30 e 40 secondi e 2-4 volte più lungo in alcune altre configurazioni.
Ora qualcuno si opporrà inevitabilmente al fatto che si sta effettuando il paging in entrata e in uscita di una dozzina di pagine da 4 kB, non di 16 Gb in una volta sola. Sebbene ciò sia vero, il punto resta valido. Se hai solo bisogno di scambiare dentro e fuori un paio di pagine, non hai bisogno di 16GiB di scambio, ma se hai bisogno di 16GiB di scambio, anche tu li trasferirai (in un modo o nell'altro).
In teoria, il 99,9% di tutti gli utenti potrebbe persino utilizzare una macchina da 64GiB (o qualsiasi macchina da 8 + GiB) senza alcuno scambio, e molto probabilmente non si accorgerà mai della mancanza di qualcosa. Tuttavia, questo non è consigliabile.
Innanzitutto, non è ottimale perché il sistema operativo ha meno opzioni in ciò che può scartare quando esaurisce la memoria fisica. Ci sono due cose che può fare: scambiare qualcosa che non viene utilizzato o buttare via le pagine dalla cache del buffer. Se non hai swap, c'è solo una cosa che può fare. Eliminare le pagine dalla cache del buffer è innocuo, ma può influire notevolmente sulle prestazioni.
In secondo luogo, le mappature anonime private potrebbero semplicemente fallire se non c'è scambio. Questo di solito non accadrà, ma alla fine quando non c'è abbastanza memoria fisica disponibile per soddisfarli tutti, e non c'è scambio, il sistema operativo ha solo questa scelta, tranne ...
Terzo, il temuto killer OOM potrebbe dare il via Ciò significa che un processo più o meno casuale viene ucciso. No grazie. Non è qualcosa che vuoi che accada.
Detto questo, consigli come la necessità di uno scambio X volte la quantità di RAM installata provengono da persone che ripetono qualcosa che hanno sentito (e non hanno capito!) Da qualcuno che ha ripetuto qualcosa che hanno sentito (e non hanno capito!) Decenni fa.
La regola "usa 2 volte la tua RAM" è stata una regola empirica facile da ricordare negli anni '80 e '90, non è mai stata la "verità d'oro" (solo qualcosa che ha funzionato bene per la maggior parte degli utenti) e non si applica affatto al giorno d'oggi .
Dovresti avere una quantità ragionevole di swap che puoi facilmente permetterti (diciamo, un gigabyte), quindi il sistema operativo può scovare alcune cose vecchie e quindi il mondo non finisce immediatamente quando chiedi una volta un po 'più di memoria. Ma questo è tutto.
mmap
per allocare le pagine del set di lavoro. Quindi la quantità di swap sarà esattamente la quantità necessaria per il processo.