Il mio portatile ha un sacco di RAM e un SSD. Per non consumare l'SSD, non voglio che lo swap venga usato mai. Se un processo utilizza mai così tanta RAM da dover iniziare a usare lo swap, allora è chiaramente malintenzionato e dovrebbe essere ucciso dal kernel. Ma voglio anche essere in grado di ibernare o ibrido-dormire il mio portatile. Al momento sembra essere molto difficile ottenere un tale setup funzionante. Ecco alcuni avvertimenti:
- anche ambientazione
swappiness
a 0 consente di utilizzare lo swap se un'applicazione richiede troppa memoria. Sembra che non ci sia modo di abilitare lo swap, ma impedire al kernel di utilizzarlo come spazio di swap (e quindi ridurre la sua utilità allo spazio per l'immagine di ibernazione) - disabilitando lo swap (temporaneamente) si otterranno comandi come
systemctl hibernate
errore conFailed to hibernate system via logind: Sleep verb not supported
- Voglio essere in grado di mettere il mio sistema in ibernazione / ibrido-sonno (quindi scrivere uno script wrapper che abiliti lo swap e poi lo lanci
systemctl hibernate
non è sufficiente)
Ora sto cercando il modo giusto per raggiungere questo obiettivo. Un modo per farlo sarebbe probabilmente quello di disabilitare in genere la mia partizione di swap e poi di farlo swapon
al punto giusto via systemd (e swapoff
dopo che il sistema si è svegliato). Ma non riesco a capire come arrivarci.
Un altro modo sarebbe utilizzare un file di scambio, ma sembra aggiungere complicazioni extra rispetto all'utilizzo di una partizione di swap. Non ultimo perché sto usando la crittografia completa del disco e uswsusp
sembra essere solo un altro livello in cima a quello che posso già avere con la mia partizione di swap esistente. Ma forse mi manca qualcosa e l'utilizzo di un file di scambio è davvero più semplice per questo scopo.