Cómo reducir las instantáneas locales de Time Machine en macOS High Sierra

26

Me di cuenta de que mi espacio extra desaparece repentinamente desde la actualización a macOS High Sierra. Por ejemplo, tengo 170 GB gratis por la mañana y luego por la tarde tengo 56 GB.

Luego, a veces, eso dispara hasta 170 GB. Es un poco extraño y reiniciar a veces funciona, pero a veces no.

Empecé a buscar "instantáneas locales" que Time Machine crea automáticamente. Supongo que estas son instantáneas almacenadas localmente que se crean para la eficiencia de Time Machine. Tal vez cuando no está conectado al disco de Time Machine para que pueda tener una copia de seguridad versionada. No estoy seguro.

Puede ver sus instantáneas locales así:

$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2017-12-14-173102
com.apple.TimeMachine.2017-12-14-212356
com.apple.TimeMachine.2017-12-15-052254
com.apple.TimeMachine.2017-12-15-084940
com.apple.TimeMachine.2017-12-15-094508
com.apple.TimeMachine.2017-12-15-121635

Cuando corro tmutilen mi Terminal veo un comando llamado thinlocalsnapshots. ¿Qué hace eso y cómo lo uso?

Joshua Pinter
fuente
Por lo general, configurar una partición antes de configurar Time Machine ayuda.
Melvin Jefferson
1
@MelvinJefferson Definitivamente estaría de acuerdo con eso. Pero eso requiere previsión. ;) Terminé apagando Time Machine mientras creaba la partición y configuraba Boot Camp de todos modos. Eso ayudó a mantener el sistema de disco estable durante la partición e instalación.
Joshua Pinter

Respuestas:

36

Spoiler: Pasé de ~ 50 GB gratis a ~ 277 GB gratis, aproximadamente 227 GB de diferencia, en el transcurso de esta respuesta.

No hay una tonelada de información de la tmutilfunción básica , pero puede llamar man tmutilpara obtener más detalles, específicamente sobre thinlocalsnapshots:

thinlocalsnapshots mount_point [purge_amount] [urgency]
             Thin local Time Machine snapshots for the specified volume.

             When purge_amount and urgency are specified, tmutil will attempt (with urgency level 1-4) to reclaim purge_amount in bytes by thinning snapshots.

             If urgency is not specified, the default urgency will be used.

Una omisión notable es lo que default urgencyrealmente es y si 1 es de alta urgencia o 4 es de alta urgencia.

Para mostrarle lo que sucede en el uso en el mundo real, aquí está mi lista inicial de instantáneas locales:

$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2017-12-14-173102
com.apple.TimeMachine.2017-12-14-212356
com.apple.TimeMachine.2017-12-15-052254
com.apple.TimeMachine.2017-12-15-084940
com.apple.TimeMachine.2017-12-15-094508
com.apple.TimeMachine.2017-12-15-121635

Cuando se ejecuta sin las opciones purge_amounty urgency, es probable que no se eliminen instantáneas locales:

$ tmutil thinlocalsnapshots /
Thinned local snapshots:

Con purge_amountestablecido en 1000000000(1 Gigabyte):

$ tmutil thinlocalsnapshots / 1000000000
Thinned local snapshots:
2017-12-14-173102

Y si vuelvo a ejecutar eso:

$ tmutil thinlocalsnapshots / 1000000000
Thinned local snapshots:
2017-12-14-212356

Esto es lo que sucedió con mi lista de instantáneas locales:

$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2017-12-15-052254
com.apple.TimeMachine.2017-12-15-084940
com.apple.TimeMachine.2017-12-15-094508
com.apple.TimeMachine.2017-12-15-121635

Intentemos ejecutar ese mismo comando una vez más:

$ tmutil thinlocalsnapshots / 1000000000
Thinned local snapshots:
2017-12-15-052254
2017-12-15-084940

$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2017-12-15-094508
com.apple.TimeMachine.2017-12-15-121635

Y otra vez:

$ tmutil thinlocalsnapshots / 1000000000
Thinned local snapshots:
2017-12-15-094508

$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2017-12-15-121635

Y una vez más para intentar eliminar esa instantánea local final:

$ tmutil thinlocalsnapshots / 1000000000
Thinned local snapshots:

$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2017-12-15-121635

Puedes ver que esta vez no hizo nada.

Intentemos aumentar los bytes a 10 GB:

$ tmutil thinlocalsnapshots / 10000000000
Thinned local snapshots:

Todavía nada. Probemos con 100 GB:

$ tmutil thinlocalsnapshots / 100000000000
Thinned local snapshots:

De nuevo, nada.

Entonces, cuando llega a la última instantánea local, debe tener que ver con la urgencyopción en lugar de la purge_amount.

Volvamos a solo 1 GB para el purge_amountpero intente con urgencyestablecer en 1 (otra omisión en el manual es si 1 es alto o 4 o alto):

$ tmutil thinlocalsnapshots / 1000000000 1
Thinned local snapshots:
2017-12-15-121635

$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2017-12-15-121635 (dataless)

¡Éxito!

Puede ver que redujo la última instantánea local restante y ahora cuando listlocalsnapshotsverá solo la última, pero está etiquetada como (dataless).

Estoy dispuesto a apostar a que urgencyestablecer 1 significa "muy urgente" y urgencyestablecer 4 significa "meh, siempre que".

En el transcurso de estas pruebas, mi disco duro pasó de ~ 50 GB gratis a ~ 277 GB gratis. ¡Una liberación de unos 227 GB!

Supongo que estas instantáneas locales se adelgazarán automáticamente, especialmente cuando se requiere espacio adicional para que no tenga que preocuparse demasiado por esto.

Pero me encontré con esto porque

  1. Me preguntaba cómo estaba perdiendo todo mi espacio libre en el disco tan de repente, y;

  2. Estaba tratando de hacer una partición Boot Camp para ejecutar Windows y no tenía suficiente espacio, aunque la mayoría de ese espacio solo estaba siendo ocupado por instantáneas locales.

En el futuro, me pregunto si debería hacer que un trabajo cron ejecute un comando de adelgazamiento cada semana más o menos, solo para mantener las cosas limpias. Veré qué sucede después de unos días más y agregaré todo lo que encuentre aquí.

Aquí está el sitio de Apple para obtener más información sobre cómo se utilizan las instantáneas locales de Time Machine:

https://support.apple.com/en-ca/HT204015

Joshua Pinter
fuente
He estado tratando de hacer que varias funciones de instantáneas funcionen recientemente. ¿Has notado, o soy solo yo ... que las instantáneas tienen un sufijo am o pm ahora, que parece romper la función de eliminación?
Tetsujin
Ni idea. Tampoco estoy seguro de lo que quiere decir con "función de eliminación".
Joshua Pinter
Lo sentimos, muchas preguntas instantáneas se abren a la vez;) Tenía la intención de poner esto en apple.stackexchange.com/q/314038/85275
Tetsujin
2
¡Buena publicación! No pude encontrar nada más en Internet que realmente me permitiera recuperar espacio. Realmente me gusta cómo experimentaste para descubrir qué significan las opciones y luego lo documentaste.
Andrew
@ Andrew ¡Gracias, Andrew! Tampoco encontré nada más, así que pensé en atravesarlo y llevarte a pasear. :)
Joshua Pinter el
3

Las instantáneas locales son para usar Time Machine cuando no está conectado a su unidad de Time Machine. Solo duran 24 horas. Por lo tanto, no debería tener que eliminarlos. Al menos esto es lo que afirma Apple. El espacio libre no parece ser reportado consistentemente dentro del sistema operativo. En algunos lugares muestra las instantáneas como ocupando espacio real, en otros lugares se muestra como purgable. Las aplicaciones piensan que está ocupando espacio real y puede causar problemas.

Jason F
fuente
3
"Al menos esto es lo que Apple afirma". Ahí está la trampa.
Joshua Pinter
3
¡Casi siempre, si me quedo sin espacio o cuando tengo poco espacio, cuando necesito el espacio AHORA no está en 24 horas!
Victor Engel
1
tmutil listlocalsnapshotdates /informa una instantánea del 02-01-2019. "Al menos esto es lo que Apple afirma".
Julian F. Weinert