TRIM automático vs. TRIM manual

13

Atualmente, estou tentando descobrir como cortar com o meu novo TP e fiquei pensando sobre a diferença de corte manual / online.

Aqui está a minha configuração:

ThinkPad T430s com SSD Samsung 830, 128GB e Xubuntu 12.10, aqui estão algumas saídas para verificar se o trim funcionará no meu sistema (peguei aqui: http://wiki.ubuntuusers.de/SSD/TRIM )

root@eike-tp:~# sudo hdparm -I /dev/sda | grep -i TRIM
   *    Data Set Management TRIM supported (limit 8 blocks)

Primeiro, tentei o corte on-line: como ativar o TRIM?

meu fstab com descarte inserido:

UUID=d6c49c17-a4f1-466c-9f7e-896c20db3bba /  ext4  discard,noatime,errors=remount-ro  0  1
# swap was on /dev/sda5 during installation
UUID=a0322f5f-c6c1-4896-863f-668f0638d8cf none  swap  sw  0   0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Tentei testar se funciona (mas não recebo zeros quando tento com / dev / sda), mas descobri que esse método só é possível com o SSD tipo 2 e parece que tenho o tipo 3. Então, eu não sei se funciona ou não.

O Ubuntuwiki (primeiro link) recomenda o corte manual, então eu configurei um cronjob diário em vez de descartar:

#!/bin/sh
LOG=/var/log/batched_discard.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG

o artigo da wiki sugere semanalmente ou diariamente. Agora às minhas perguntas:

Com que frequência executa o ajuste automático? Com que frequência é recomendado? Aparamento on-line versus corte manual?

obrigado pela ajuda

Eike Cochu
fonte

Respostas:

4

A diferença entre o ajuste automático e manual é que o ajuste automático (usando a discardopção de montagem) apara os blocos liberados na sincronização após a exclusão de qualquer arquivo, enquanto o ajuste manual (usando fstrim) apara todo o espaço livre de uma só vez.

Teste

Uma maneira de testar se o corte automático está funcionando seria criar e excluir um arquivo grande:

user@host:/somewhere$ dd if=/dev/urandom bs=1M count=100 of=bigfile
user@host:/somewhere$ sync
user@host:/somewhere$ rm bigfile
user@host:/somewhere$ sync

Se o descarte automático estiver funcionando, o corte manual novamente não cortará muitos blocos, pois eles já devem ter sido aparados. Execute sudo discard -vno seu sistema de arquivos e veja quantos blocos são aparados.

Recomendação

Quanto ao que é recomendado: Na minha experiência, o ajuste automático mata o desempenho. No entanto, isso provavelmente depende do hardware; pode estar bem em sua unidade.

Se você estiver usando o ajuste manual, com que frequência, pense na taxa em que você escreve dados em sua carga de trabalho típica, em comparação com a quantidade de espaço livre no seu SSD. Você deseja aparar com bastante frequência, antes que seu disco se encha de dados excluídos. Se o seu SSD é principalmente espaço livre ou a carga de trabalho do disco é leve, o corte ocasional (semanal ou até mais) deve ser suficiente. Se o seu SSD estiver quase totalmente cheio ou você, por exemplo, editar arquivos de vídeo com frequência, será necessário aparar com mais frequência.

Caracol mecânico
fonte
2

Não sou engenheiro de armazenamento e tenho minhas próprias preocupações relacionadas , mas posso fazer uma sugestão possivelmente útil sobre o agendamento. Estou bastante confiante de que o TRIM não causa nenhum desgaste preocupante no SSD. É apenas a limpeza que seu disco precisará passar eventualmente, antes que possa começar a reciclar os blocos. A melhor programação para o TRIMming em lote dependeria do uso; uma função da frequência de escrita e do espaço livre, devo pensar. Com isso em mente, eu desconectaria o trabalho cron e fstrim -vmanualmente por vários dias.

Acho que o truque é criar uma programação em que o lote TRIM prepara o SSD para gravação antes que os blocos usados ​​tenham que ser reciclados para realizar uma operação de gravação normal, prejudicando o desempenho. Aguarde 24 horas e depois. Se ele afirma ter aparado muito menos blocos do que o espaço livre, provavelmente você está bem atendido ao TRIMming com menos frequência do que isso.

barragem
fonte
2

Eu aponto meu SSD em cada inicialização. Criei um arquivo sh chamado 20 segundos após a inicialização. Optei por exibir a saída do fstrim em uma notificação do sistema em vez de em um arquivo de log.

primeiro crie o trim.sharquivo no seu ~/bindiretório

#! /bin/sh
notify-send "TRIM" "$(sudo fstrim -v /)"

Agora precisamos conceder privilégios ao usuário para executar o fstrim, para que não seja necessário inserir uma senha. Abra seu arquivo sudoers com visudo e acrescente a seguinte linha:

yourusername  ALL=(ALL) NOPASSWD: /sbin/fstrim

Se você incluir sua home/yourusername/binpasta na sua, $PATHtambém poderá cortar manualmente no terminal com o comando 'trim' sem a necessidade de uma senha.

Agora você pode adicionar seu script aos aplicativos de inicialização e especificar um atraso. Você precisa sair / fazer login novamente para que a sua nova entrada de sudoers seja carregada.

kasper Taeymans
fonte