Como afinar os instantâneos locais da Time Machine no macOS High Sierra

26

Percebi que meu espaço extra desapareceu de repente desde a atualização para o macOS High Sierra. Por exemplo, tenho 170 GBs gratuitos de manhã e, à tarde, reduzi-me a 56 GBs.

Às vezes, isso gera até 170 GBs. É um pouco estranho e a reinicialização às vezes funciona, mas às vezes não.

Comecei a pesquisar "instantâneos locais" criados automaticamente pelo Time Machine. Suponho que sejam instantâneos armazenados localmente criados para a eficiência do Time Machine. Talvez quando não estiver conectado ao disco do Time Machine, para que ele ainda possa ter um backup com versão. Não tenho certeza.

Você pode visualizar seus instantâneos locais da seguinte maneira:

$ 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

Quando corro tmutilno meu Terminal, vejo um comando chamado thinlocalsnapshots. O que isso faz e como eu o uso?

Joshua Pinter
fonte
Geralmente, configurar uma partição antes de configurar o Time Machine ajuda.
Melvin Jefferson
1
@MelvinJefferson Eu definitivamente concordo com isso. Mas isso requer previsão. ;) Acabei desligando o Time Machine ao criar a partição e configurar o Boot Camp de qualquer maneira. Isso ajudou a manter o sistema de disco estável durante a partição e instalação.
Joshua Pinter

Respostas:

36

Spoiler: Eu fui de ~ 50 GBs grátis para ~ 277 GBs grátis, cerca de 227 GBs de diferença, ao longo desta resposta.

Não há muitas informações da tmutilfunção básica , mas você pode ligar man tmutilpara obter mais detalhes, especificamente 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.

Uma omissão perceptível é o que default urgencyrealmente é e se 1 é de alta urgência ou 4 é de alta urgência.

Para mostrar o que está acontecendo no uso no mundo real, aqui está minha lista inicial de instantâneos locais:

$ 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

Ao executar sem as opções purge_amounte urgency, é provável que nenhum instantâneo local seja removido:

$ tmutil thinlocalsnapshots /
Thinned local snapshots:

Com purge_amountdefinido como 1000000000(1 Gigabyte):

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

E se eu executar isso de novo:

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

Aqui está o que aconteceu com a minha lista de instantâneos locais:

$ 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

Vamos tentar executar o mesmo comando mais uma vez:

$ 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

E de novo:

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

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

E mais uma vez, para tentar remover o instantâneo local final:

$ tmutil thinlocalsnapshots / 1000000000
Thinned local snapshots:

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

Você pode ver que não fez nada neste momento.

Vamos tentar aumentar os bytes para 10 GBs:

$ tmutil thinlocalsnapshots / 10000000000
Thinned local snapshots:

Nada ainda. Vamos tentar 100 GBs:

$ tmutil thinlocalsnapshots / 100000000000
Thinned local snapshots:

Mais uma vez, nada.

Portanto, quando chega ao último instantâneo local, ele deve ter a ver com a urgencyopção e não com o purge_amount.

Vamos voltar a apenas 1 GB para o purge_amountmas tente com urgencydefinido como 1 (outra omissão no manual é se 1 é alto ou 4 ou alto):

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

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

Sucesso!

Você pode ver que ele reduziu o último instantâneo local restante e agora, quando listlocalsnapshotsverá apenas o mais recente, mas está marcado como (dataless).

Estou disposto a apostar que urgencyser definido como 1 significa "muito urgente" e urgencydefinido como 4 significa "meh, sempre que".

Ao longo desses testes, meu disco rígido passou de ~ 50 GBs grátis para ~ 277 GBs grátis. Liberação de cerca de 227 GB!

Eu presumiria que esses instantâneos locais seriam reduzidos automaticamente, especialmente quando é necessário espaço adicional, para que você não precise se preocupar muito com isso.

Mas, eu me deparei com isso porque

  1. Fiquei me perguntando como estava perdendo todo o meu espaço livre em disco tão de repente e;

  2. Eu estava tentando criar uma partição do Boot Camp para executar o Windows e não tinha espaço suficiente, mesmo que a maior parte desse espaço estivesse sendo ocupada por snapshots locais.

No futuro, estou pensando se devo ter um trabalho cron executando um comando de desbaste a cada semana, aproximadamente, apenas para manter as coisas limpas. Vou ver o que acontece depois de mais alguns dias e adicionar tudo o que encontrar.

Aqui está o site da Apple para obter mais informações sobre como os snapshots locais do Time Machine são usados:

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

Joshua Pinter
fonte
Eu tenho tentado obter várias funções de instantâneo para trabalhar recentemente. Você já reparou, ou sou apenas eu ... que os instantâneos têm um sufixo AM ou PM agora, o que parece interromper a função de exclusão?
Tetsujin
Nenhuma idéia. Não tenho certeza do que você quer dizer com "função de exclusão".
27418 Joshua Pinter
Desculpe, muitas perguntas instantâneo abrir de uma vez;) eu quis colocar isso sob apple.stackexchange.com/q/314038/85275
Tetsujin
2
Ótimo post! Não foi possível encontrar mais nada na internet que realmente me permitisse recuperar espaço. Eu realmente gosto de como você experimentou para descobrir o que as opções significam e depois a documentou.
andrew
@ andrew Obrigado, Andrew! Também não encontrei mais nada lá fora, então pensei em passar por isso e levá-lo junto para o passeio. :)
Joshua Pinter
3

Os instantâneos locais são para usar a máquina do tempo quando não estão conectados à sua unidade da máquina do tempo. Eles duram apenas 24 horas. Portanto, você não precisa limpá-los. Pelo menos é o que a Apple afirma. O espaço livre não parece ser relatado consistentemente no sistema operacional. Em alguns lugares, ele mostra os instantâneos como ocupando espaço real, outros, como removível. Os aplicativos pensam que está ocupando espaço real e pode causar problemas.

Jason F
fonte
3
"Pelo menos é o que a Apple afirma." Aqui está a pegadinha.
Joshua Pinter
3
Quase sempre, se eu ficar sem espaço, quando precisar, o espaço AGORA NÃO será em 24 horas!
Victor Engel
1
tmutil listlocalsnapshotdates /relata um instantâneo de 01-01-2019. "Pelo menos é o que a Apple afirma."
Julian F. Weinert