fstrim cortando todo o espaço livre após a reinicialização

fstrim cortando todo o espaço livre após a reinicialização

Acabei de atualizar para um SSD. O desempenho tem sido ótimo.

No entanto, após cada reinicialização, quando faço um fstrim nas partições, ele corta todo o espaço livre. E pelo que entendi, o corte grava em todo o espaço livre disponível. Não tenho certeza se é relevante, mas uso criptografia completa de disco (/boot incluído).

Como a vida útil do SSD pode ser reduzida drasticamente com gravações frequentes, estou preocupado com esse corte.

Aqui estão os registros que mantenho em cada corte:

Jul 30 13:46:00 /: 478.6 MiB (501862400 bytes) trimmed
Jul 31 13:22:26 /: 347.8 GiB (373409230848 bytes) trimmed
Jul 31 13:25:32 /: 194.3 MiB (203710464 bytes) trimmed
Jul 31 13:25:40 /: 19.2 MiB (20111360 bytes) trimmed
Aug 02 14:08:06 /: 345.9 GiB (371398463488 bytes) trimmed
Aug 02 22:21:36 /: 56.9 GiB (61047971840 bytes) trimmed
Aug 02 22:31:27 /: 347.7 MiB (364560384 bytes) trimmed
Aug 02 22:31:43 /: 127 MiB (133144576 bytes) trimmed
Aug 02 22:33:01 /: 243 MiB (254767104 bytes) trimmed
Aug 03 06:58:47 /: 1 GiB (1080602624 bytes) trimmed
Aug 03 10:00:02 /: 2.4 GiB (2526216192 bytes) trimmed
Aug 03 11:42:14 /: 341 GiB (366146318336 bytes) trimmed
Aug 03 16:00:01 /: 0 B (0 bytes) trimmed
Aug 03 16:33:53 /: 0 B (0 bytes) trimmed
Aug 03 16:48:43 /: 341 GiB (366074740736 bytes) trimmed
Aug 03 16:50:13 /: 1.2 GiB (1297809408 bytes) trimmed
Aug 03 16:53:31 /: 341 GiB (366074695680 bytes) trimmed
Aug 03 17:07:55 /: 340.9 GiB (366066126848 bytes) trimmed
Aug 05 22:00:13 /: 341 GiB (366073069568 bytes) trimmed
Aug 05 22:07:22 /: 1.2 GiB (1261793280 bytes) trimmed
Aug 06 07:41:50 /: 1.4 GiB (1522991104 bytes) trimmed
Aug 06 10:00:11 /: 341 GiB (366068740096 bytes) trimmed

Como você pode ver, o corte após o computador ser ligado é de aproximadamente 340GiB, enquanto o corte no uso normal é de cerca de 1GiB.

Devo me preocupar com o desgaste do meu SSD? Não devo cortar?

Responder1

Existe um equívoco. O corte não causa gravações extras, édiminuieles.

Um SSD, ou melhor, seu NAND, tem duas noções de “blocos”, dos quais um é chamadobloquear(geralmente algo entre 128k e 512k), e o outro que está muito mais próximo do que você quer dizer quando fala em "bloqueio" em termos de seu sistema de arquivos é chamadopágina(geralmente algo em torno de 4k). Você podeescreveruma página completa de cada vez, tal como faria num disco rígido antigo, sem problemas. As coisas simplesmente funcionam como esperado.

No entanto, você não podesubstituiruma página, eles são escritos uma vez. Depois disso, você só poderáapagartornando-o gravável novamente. Isto é o que conta para a vida útil da NAND. O problema é que... na realidade vocênão podeapagar páginas. Você só pode apagarblocos(ou seja, grupos de 32 a 64 páginas por vez).

Isso significa que quando você sobrescreve uma página ("bloco" em termos de sistema de arquivos), o controlador deve:

  1. leia no bloco completo
  2. se existir um bloco "virgem" ou já apagado, use-o
  3. de outra formaclaroo mesmo bloco
  4. escreva o bloco completo, modificando adequadamente o conteúdo da página sobrescrita
  5. faça alguma "mágica" não especificada para que os ciclos de apagamento sejam distribuídos de maneira uniforme por todos os blocos, evitando morte prematura

Isso é um tanto simplificado, mas o princípio é esse. AinteligenteO controlador pode fazer algo um pouco diferente (por exemplo, remapear páginas logicamente, preencher todas as páginas até que não reste nenhuma e, de alguma forma, "lembrar" quais são boas e quais estão obsoletas, etc, etc), mas em princípio o fluxo de trabalho é conforme descrito acima.

Isso é um problema, na medida em que pequenas gravações são comuns, então logo você terá todos os blocos do disco gravados pelo menos uma vez. Agora, o que o controlador pode fazer? Não muito. Ele realmente não sabe o que o sistema de arquivos está fazendo ou o que é esperado, então tem que trabalhar com base na suposição mais conservadora. Ou seja, tudo e qualquer coisa que já foi escrito deve ser preservado.

TRIM resolve esse problema. Ele informa ao controlador que uma faixa tão grandenão está sendo usado, então o controlador também pode descartá-lo. Não escreve nada. Se for o caso, ele apagará apenas os blocos (embora apenas uma vez, não todas as vezes).
Como você disse ao controlador que não está usando esses dados, há o risco de jogá-los fora sem causar danos. Agora, de repente, há blocos graváveis ​​disponíveis novamente, sem a necessidade de copiar dados e apagar blocos repetidamente. O que não só faz escritamais rápidomas também diminui o número de apagamentos que devem acontecer.

Responder2

fstrimparece liberartodosespaço livre de uma partição, não apenas o espaço liberado desde a última invocação de fstrim. Veja tambémesta postagem.

informação relacionada