Duas coisas aqui:
-
fstrim
apara todos os dados não alocados no sistema de arquivos (bem, não todos os dados, apenas os blocos de dados que não estão alocados, eu não acho que as partes não usadas da tabela de inode ou as partes de blocos não completamente usados são aparados), independentemente dediscard
estar em uso ou não.fstrim
não pode saber quais desses blocos não alocados foram "aparados" ou não no passado, mas (na verdade, o kernel, todo ofstrim
trabalho é feito noFITRIM
ioctl
), no entanto, acompanha dos quais grupo de blocos foram aparados e não serão reduzidos novamente se não houver nenhuma desalocação nesse grupo de blocos desde então, a menos que você esteja solicitando um FITRIM com um comprimento de extensão mínimo menor (de verificando o código ext4, pode ser diferente para outros sistemas de arquivos) o que explica porque você obtém 0 na próxima execução.Observe que não é prejudicial aparar um bloco que já tenha sido aparado. Isso é apenas dizer ao SSD novamente que ele pode fazer o que quiser com ele (como apagá-lo para que ele esteja pronto para ser usado novamente para outra coisa).
- Em
df
output, o valor "disponível" não leva em conta o espaço "reservado" pararoot
, você notará que 206 - 76 é 130G, não 118G. 12G (cerca de 5%) são reservados. Vejatunefs -m
para alterar quanto está reservado.