1. Conceito
TRIM em servidores Linux. O TRIM é um comando que permite ao SSD/NVMe saber quais blocos de dados não são mais usados, permitindo que ele os apague internamente. Isso evita degradação de desempenho em longo prazo.
2. Verificando suporte do SSD/NVMe
NVMe
lsblk -D cat /sys/block/nvme0n1/queue/discard_max_bytes
discard_max_bytes > 0→ TRIM suportado.
SATA SSD
sudo hdparm -I /dev/sda | grep TRIM
3. Testando TRIM
- Crie arquivo grande:
dd if=/dev/zero of=/mnt/ssd/testfile bs=1G count=1
- Delete o arquivo:
rm /mnt/ssd/testfile
- Execute TRIM manualmente:
sudo fstrim -v /mnt/ssd
- Deve retornar algo como:
Discards 1073741824 bytes.
Se não descartar → TRIM não está ativo ou não suportado.
4. Modos de TRIM
4.1 TRIM Online (discard)
- Ativado via mount:
sudo mount -o discard /dev/nvme0n1p1 /mnt/ssd
- Prós: imediato, sem necessidade de agendamento.
- Contras: impacto de performance em servidores com alta gravação.
- Uso recomendado: baixa carga, não crítico para performance.
4.2 TRIM Agendado (fstrim)
- Executa TRIM periodicamente (diário ou semanal).
- Comando manual:
sudo fstrim -v /
- Configuração automática (systemd timer):
sudo systemctl enable fstrim.timer sudo systemctl start fstrim.timer systemctl status fstrim.timer
- Recomendado para servidores de produção: segura a performance sem impacto de escrita.
5. TRIM em RAID
- Nem todos os controladores RAID repassam TRIM.
- Antes de habilitar, verifique:
sudo mdadm --detail /dev/md0
- Se usar hardware RAID sem suporte TRIM → use apenas fstrim agendado (ou nada).
- Soft RAID (Linux MD) normalmente suporta TRIM via fstrim.
6. TRIM e criptografia
- Com LUKS/dm-crypt, TRIM não é habilitado por padrão.
- Para habilitar:
sudo cryptsetup luksOpen --allow-discards /dev/sda1 cryptssd
- Fica atento: isso permite que blocos vazios sejam descartados, impactando a possibilidade de recuperação forense.
7. Dicas para produção
- Sempre use fstrim agendado em servidores críticos.
- Frequência recomendada: semanal, exceto ambientes com altíssima rotatividade de dados (diário).
- Evite
discardem montagem direta de bancos de dados com alta escrita, prefira TRIM agendado. - Monitore o TRIM:
sudo fstrim -v /mnt/ssd
- Não dependa apenas do TRIM para limpeza de dados sensíveis — combine com ferramentas de segurança ou criptografia.
8. Exemplo de configuração de fstrim semanal (systemd)
Crie um timer customizado, caso queira mais controle:
/etc/systemd/system/fstrim-weekly.service
[Unit] Description=TRIM SSDs semanal [Service] Type=oneshot ExecStart=/usr/sbin/fstrim -av
/etc/systemd/system/fstrim-weekly.timer
[Unit] Description=Executa TRIM semanalmente [Timer] OnCalendar=Sun 03:00 Persistent=true [Install] WantedBy=timers.target
Ative:
sudo systemctl daemon-reload sudo systemctl enable --now fstrim-weekly.timer
9. Resumo prático
| Modo | Performance | Frequência | Produção |
|---|---|---|---|
discard | Impacto leve | imediato | baixa carga |
fstrim timer | Sem impacto | semanal/diário | recomendado |
| RAID sem suporte TRIM | – | somente fstrim | obrigatório |
| LUKS | TRIM opcional | agendado | cuidado com segurança |
FAQ
Não é obrigatório, mas é altamente recomendado para SSD/NVMe em produção para manter performance consistente.
discard em bancos de dados de alta carga?Não é recomendado. Prefira TRIM agendado (fstrim) para evitar impacto em performance durante gravações intensas.
Depende do tipo de RAID. Soft RAID do Linux geralmente funciona com fstrim, mas hardware RAID pode não suportar TRIM.
Não. Ele só informa ao SSD que blocos não usados podem ser apagados. Em sistemas criptografados, o comando precisa ser habilitado explicitamente.
Semanal é suficiente na maioria dos casos, diário em sistemas com alta rotatividade de dados.

