Cos'è il file sleepimage su Mac e si può eliminare
sleepimage è il file in /private/var/vm/sleepimage dove macOS conserva una copia della memoria per la sospensione. Serve a ripristinare il tuo lavoro aperto se manca la corrente mentre il Mac è in stop. Puoi eliminarlo con sudo, ma con l'ibernazione ancora attiva macOS lo riscrive alla sospensione successiva, quindi eliminarlo non restituisce spazio in modo duraturo. Tenerlo assente richiede un'impostazione di alimentazione, e quell'impostazione toglie la protezione per cui il file esiste.
Cosa fa il file
man pmset descrive tre valori di hibernatemode:
hibernatemode |
Cosa fa la sospensione | Se manca la corrente |
|---|---|---|
0 |
La memoria resta alimentata, nessuna copia su disco | La sessione va persa |
3 |
La memoria resta alimentata e una copia va su disco, il valore predefinito del manuale per i portatili | Il Mac ripristina dalla copia |
25 |
Una copia va su disco e la memoria perde l'alimentazione: sospensione e riattivazione più lente, batteria meglio | Il Mac ripristina sempre dalla copia |
Conta anche standby. Se è attivo, macOS porta in ibernazione un Mac che è rimasto in stop per un po', e questo scrive a sua volta l'immagine. Per questo un desktop con hibernatemode 0 può avere comunque il file.
Controlla le tue impostazioni e il file così:
pmset -g | grep -E 'hibernate|standby|autopoweroff'
ls -lh /private/var/vm
Nell'output il percorso compare come hibernatefile. Un elenco di cartelle può mostrare /var/vm, che è lo stesso posto di /private/var/vm.
Quanto diventa grande
Non ha sempre la dimensione della tua memoria. Il Mac con Apple silicon su cui è stata verificata questa pagina ha 48 GB di memoria e un sleepimage di 2,0 GB, con hibernatemode 3. Sul tuo Mac il valore dipende dal modello e da ciò che c'era in memoria, quindi misuralo invece di supporre:
du -h /private/var/vm/sleepimage
Quel file non ha nulla a che fare con lo swap, anche se i due vengono citati insieme da tempo. Su un Mac recente i file di swap stanno su un volume separato; come funziona lo swap su un Mac li descrive. Le impostazioni di archiviazione di solito contano sleepimage dentro i Dati di sistema, quindi può far parte di un valore elevato di Dati di sistema, anche se raramente ne è la parte principale.
Conviene eliminarlo
Per la maggior parte delle persone, no. Pochi gigabyte tornano liberi solo fino alla sospensione successiva, e il file sta facendo il suo lavoro. Se hai davvero bisogno di quello spazio su un disco piccolo, l'unico modo duraturo è disattivare ogni impostazione che scrive l'immagine. Il manuale dice che le immagini di ibernazione si fermano del tutto solo quando hibernatemode, standby e autopoweroff valgono tutti 0:
sudo pmset -a hibernatemode 0
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0
sudo rm /private/var/vm/sleepimage
Se pmset -g non elenca autopoweroff, salta quella riga. Il prezzo è che una batteria che si scarica durante la sospensione, o un desktop che perde alimentazione, chiude la sessione senza possibilità di tornare indietro, e il lavoro non salvato è perso. Per tornare alla normalità su un portatile, rimetti hibernatemode a 3 e standby a 1, poi lascia che il Mac vada in stop una volta:
sudo pmset -a hibernatemode 3
sudo pmset -a standby 1
Cosa non fare
- Non eliminare il file ancora e ancora. Ti costa le stesse scritture e lo spazio torna al file alla sospensione successiva.
- Non puntare
hibernatefilea un disco esterno. Il manuale dice che può puntare solo a un file sul volume di avvio. - Non sostituire il file con uno vuoto e bloccato, un vecchio trucco dei forum. Va contro un'impostazione di sistema e ti nasconde lo stato reale.
- Non disattivare queste impostazioni su un portatile che resta spesso senza batteria. È proprio il caso da cui il file ti protegge.
Dove entra Mole
Mole non ha una riga in Pulizia per sleepimage: è un file di sistema in uso, ed eliminarlo non libera nulla per molto. Analizza salta le aree di sistema di macOS compresa /private, quindi /private/var/vm e sleepimage non vi compaiono e non si possono spostare nel Cestino da Mole. Mole non cambia nemmeno hibernatemode. L'unica impostazione di pmset che tocca è disablesleep, che Schermo acceso usa per restare attivo anche con il coperchio chiuso. Se il disco è pieno, i veri candidati di solito sono altrove, e cosa fare quando il disco di avvio è pieno è un punto di partenza migliore.
Domande frequenti
Posso eliminare sleepimage su Mac?
Puoi con sudo rm, ma macOS lo riscrive alla sospensione successiva finché l'ibernazione è attiva. Per tenerlo assente, imposta hibernatemode, standby e autopoweroff a 0, e accetta che una perdita di corrente durante la sospensione chiuda la sessione.
Perché sleepimage è così grande?
Contiene una copia della memoria per la sospensione, quindi dipende dal tuo modello e da ciò che c'era in memoria. Controllalo con du -h /private/var/vm/sleepimage, perché il valore di un altro Mac dice poco.
sleepimage è la stessa cosa dello swap?
No. Lo swap contiene pagine di memoria mentre il Mac è attivo e la memoria scarseggia. sleepimage serve a ripristinare dopo una perdita di corrente durante la sospensione.
Cosa succede se imposto hibernatemode a 0?
Sospensione e riattivazione possono sembrare un po' più rapide e con quella modalità non viene scritta alcuna immagine, ma se manca la corrente mentre il Mac è in stop il lavoro aperto non viene ripristinato. Su un Mac con standby attivo un'immagine può comunque essere scritta finché non disattivi anche quello.
sleepimage conta su un Mac con poco spazio su disco?
Può, perché pochi gigabyte pesano di più su un disco da 256 GB. Anche così, guarda prima le cache per sviluppatori, i backup dell'iPhone e i dati delle app, perché restituiscono molto di più senza cambiare il modo in cui funziona la sospensione.