O TRIM está ativado na minha instalação do Ubuntu 18.04?


38

Eu sei que o TRIM semanal é ativado por padrão a partir das 14.10. Fonte: Como ativar o TRIM? Mas a execução sudo nano /etc/cron.weekly/fstrimretorna um arquivo vazio. Também tail -n1 /etc/cron.weekly/fstrimdiz que este arquivo não existe.

A execução lsblk -Dretorna valores diferentes de zero DISC-GRANe, DISC-MAX portanto, o TRIM é suportado no meu SSD. O TRIM semanal está realmente ativado para o meu SSD ou não?

Estou usando um SSD Kingston

Respostas:


59

Aparar (fstrim / descartar) está habilitado para executar semanalmente por padrão no 18.04.
Ele está configurado para ser executado em todos os sistemas de arquivos montados em dispositivos que suportam a operação de descarte.

É um systemdserviço gerenciado via systemctl, não CRON.

Exibir status do fstrim.timer :

$ systemctl status fstrim.timer
● fstrim.timer - Discard unused blocks once a week
   Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: enabled)
   Active: active (waiting) since Thu 2018-07-05 05:45:11 BST; 4h 42min ago
  Trigger: Mon 2018-07-09 00:00:00 BST; 3 days left
     Docs: man:fstrim

Iniciar / Parar / Reiniciar fstrim.timer :
(não altera o status da inicialização)

$ sudo systemctl [start/stop/restart] fstrim.timer

Ativar / desativar fstrim.timer :
(adicionar / remover da inicialização, não altera o status ativo atual)

$ sudo systemctl [enable/disable] fstrim.timer

Veja a configuração do fstrim.timer :

$ systemctl cat fstrim.timer
# /lib/systemd/system/fstrim.timer
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim

[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target

Veja a configuração do fstrim.service :

$ systemctl cat fstrim.service
# /lib/systemd/system/fstrim.service
[Unit]
Description=Discard unused blocks

[Service]
Type=oneshot
ExecStart=/sbin/fstrim -av

Nota : ExecStart = / sbin / fstrim -av
Onde:
-a , Trim todos os sistemas de arquivos montados em dispositivos que suportam a operação de descarte.
-v , execução detalhada. Envie o número de bytes passados ​​do sistema de arquivos para baixo da pilha de blocos para o dispositivo para possível descarte.

Exibir entradas do diário do systemd relacionadas :

$ journalctl -u fstrim.timer
Jul 04 14:18:41 user-laptop systemd[1]: Started Discard unused blocks once a week.
Jul 04 21:59:26 user-laptop systemd[1]: Stopped Discard unused blocks once a week.
etc...

$ journalctl -u fstrim.service
Jun 25 10:59:44 user-laptop systemd[1]: Starting Discard unused blocks...
Jun 25 10:59:48 user-laptop fstrim[955]: /: 92.5 GiB (99335237632 bytes) trimmed
Jun 25 10:59:48 user-laptop systemd[1]: Started Discard unused blocks.
-- Reboot --
Jul 02 04:27:41 user-laptop systemd[1]: Starting Discard unused blocks...
Jul 02 04:27:46 user-laptop fstrim[1032]: /: 92.3 GiB (99150807040 bytes) trimmed
Jul 02 04:27:46 user-laptop systemd[1]: Started Discard unused blocks.
etc...

2
Para referência, o quando é controlado por /lib/systemd/system/fstrim.timer( OnCalendar=weekly) e o que por /lib/systemd/system/fstrim.service( ExecStart=/sbin/fstrim -av).
Moilleadóir

1
Fine post! Eu sugiro que você altere os comandos "cat" pelos comandos systemctl dedicados: cat /lib/systemd/system/fstrim.timer -> systemctl cat fstrim.timer. Em geral, esse comando mostra a versão do serviço em vigor. Pode ser a versão em / lib / systemd, mas também pode ser uma versão modificada em / etc / systemd.
vanadium

Quando está ativo, ele faz para todos os drivers? Por exemplo, eu tenho o ubuntu instalado em um SSD, mas tenho outro SSD montado como uma partição ext4. Aparará ambos automaticamente? (o status diz que está ativo)
Eduardo

como ativá-lo sob demanda? (por exemplo, agora, eu quero ir almoçar)
razor

Você pode iniciar / parar / reiniciar manualmente qualquer serviço systemd com: $ sudo systemctl [iniciar / parar / reiniciar] [nome do serviço] .service
Broadsworde

2

Edit: Por favor, leia os comentários, esta resposta mistura dois mecanismos!

Resposta antiga

há um ponto importante que precisa ser adicionado à resposta do @Broadsworde para torná-lo completo.

Enquanto no meu laptop todos os timers e serviços estavam ativados, a entrada de log do fstrim estava ausente (apenas: starting… stopping… reboot… starting…etc.).

Etapa ausente

Pode ser necessário marcar os sistemas de arquivos como descartáveis . Se um sistema de arquivos não estiver marcado como descartável, o ajuste será ignorado [1].

Para marcar um sistema de arquivos como descartável, você tem duas opções:

1. Opção: tune2fs

sudo tune2fs -o discard /dev/mapper/ubuntu--vg-root

Isso definirá a opção de descarte como padrão para o meu dispositivo ext4. Se você não usar criptografia, tente /dev/sda.

2. Opção: /etc/fstab

Certifique-se de acrescentar ou acrescentar a opção discardàs opções de montagem existentes. Por exemplo, assim:

/dev/mapper/ubuntu--vg-root / ext4 discard,relatime,errors=remount-ro 0 1

Somente depois disso, o serviço de timer realmente fará alguma coisa.

Notas de rodapé

  • [1] na verdade, o dispositivo precisa suportar a TRIMoperação. Mas no linux, este é um sinalizador do sistema de arquivos. Ainda assim, o dispositivo em que o sistema de arquivos está executando precisa suportar a TRIMoperação. Para ver se o dispositivo suporta, use: sudo hdparm -I /dev/sda | grep -i TRIM.

Na minha instalação (originalmente 18.10; posteriormente atualizada para 19.04), os sistemas de arquivos não tinham a opção de descarte ativada. Eu uso apenas SSD no meu sistema; e nunca teve HD mecânico. Eu os habilitei com o tune2fs . Alguma idéia ou explicação de por que o sistema não os ativou por padrão?
FedonKadifeli

1
Eu não acho que isso esteja correto. A opção descartar apara os blocos quando os arquivos são excluídos do sistema de arquivos. O serviço systemd corta os blocos não utilizados periodicamente no sistema de arquivos. Essas são coisas diferentes. A opção de descarte pode afetar negativamente o desempenho em alguns sistemas; portanto, a opção periódica é sem dúvida melhor.
xioxox

1
@xioxox está certo. Recentes mount's página homem afirma que «As questões de função de descarte freqüentam comandos para deixar o espaço de recuperação dispositivo bloco liberado pelo sistema de arquivos. [...] pode ter um impacto significativo no desempenho . (O comando fstrim também está disponível para iniciar guarnições em lote no espaço do usuário.) »
Fabio A.

Obrigado, editei a resposta de acordo. Por favor, não continue com o voto negativo desta resposta: Quero mantê-la, pois seus comentários são valiosos!
Ben
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.