NCQ TRIM
A opção de montagem
Foi adicionado ao kernel 3.12:
libata: Add support for SEND/RECEIVE FPDMA QUEUED
libata: Add support for queued DSM TRIM
O dispositivo precisa dizer ao sistema operacional que suporta o recurso. De alguns anos para cá, estão disponíveis SSDs com a tecnologia no mercado. Infelizmente, com uma tonelada de bugs. Muitos firmwares simplesmente corrompem dados ao receberem comandos NCQ TRIM. Foi necessário criar uma lista negra de modelos e versões de firmware com suporte quebrado (ver arquivo
Na versão 4.2, ficou mais fácil ver o estado do suporte via sysfs, bem como habilitar ou não através de opções de boot:
libata: Expose TRIM capability in sysfs
libata: Allow NCQ TRIM to be enabled or disabled with a module parameter
Até o momento, a recomendação continua sendo não usar a opção
Quem tiver um SSD moderno, com firmware atualizado, e
[1] Sempre há otimizações a serem feitas nos sistemas de arquivos, como estas propostas para o XFS por Christoph Hellwig.
discard
em geral prejudica o desempenho, pois os comandos TRIM esvaziam a fila NCQ, aumentando a latência. A especificação SATA 3.1 (julho de 2011) traz NCQ TRIM, async TRIM, que não drena a fila e, em teoria™, não prejudica o desempenho[1].Foi adicionado ao kernel 3.12:
libata: Add support for SEND/RECEIVE FPDMA QUEUED
libata: Add support for queued DSM TRIM
O dispositivo precisa dizer ao sistema operacional que suporta o recurso. De alguns anos para cá, estão disponíveis SSDs com a tecnologia no mercado. Infelizmente, com uma tonelada de bugs. Muitos firmwares simplesmente corrompem dados ao receberem comandos NCQ TRIM. Foi necessário criar uma lista negra de modelos e versões de firmware com suporte quebrado (ver arquivo
drivers/ata/libata-core.c
no código fonte do kernel).Na versão 4.2, ficou mais fácil ver o estado do suporte via sysfs, bem como habilitar ou não através de opções de boot:
libata: Expose TRIM capability in sysfs
libata: Allow NCQ TRIM to be enabled or disabled with a module parameter
Até o momento, a recomendação continua sendo não usar a opção
discard
e rodar o fstrim
de vez em quando. Inclusive a suíte util-linux distribui fstrim.service
e fstrim.timer
com essa finalidade.Quem tiver um SSD moderno, com firmware atualizado, e
/sys/class/ata_device/devX.Y/trim
contiver queued
, pode arriscar adicionando discard
em /etc/fstab
e desabilitando TRIM periódico (batched discard) com systemctl disable fstrim.timer
(Ubuntu 18.04+; demais distribuições adotaram fstrim.timer
bem antes). Não me responsabilizo se você perder todos seus dados.[1] Sempre há otimizações a serem feitas nos sistemas de arquivos, como estas propostas para o XFS por Christoph Hellwig.
Comentários
Postar um comentário