Pagina inicial » como » Ubuntu não TRIM SSDs por padrão Por que não e como habilitá-lo sozinho

    Ubuntu não TRIM SSDs por padrão Por que não e como habilitá-lo sozinho

    O Ubuntu quer ativar o TRIM para SSDs por padrão no Ubuntu 14.04. Em outras palavras, o Ubuntu não está usando o TRIM, então seu SSD está diminuindo com o tempo. Mas por que o Ubuntu não está usando o TRIM??

    Esta notícia provavelmente será uma surpresa para muitas pessoas, que assumiram que o Ubuntu e outras distribuições Linux já estavam usando o TRIM. O TRIM impede que os SSD diminuam ao longo do tempo e é uma parte necessária da manutenção do SSD.

    Por que o TRIM é importante

    Nós cobrimos porque o TRIM é importante antes. Quando você exclui um arquivo em um disco rígido antigo e magnético, o computador simplesmente marca esse arquivo como excluído. Os dados do arquivo ficam no disco rígido - é por isso que os arquivos apagados podem ser recuperados. O computador acabará por substituir os arquivos excluídos quando ele substitui seus setores com novos dados.

    Unidades de estado sólido (SSDs) funcionam de maneira diferente. Sempre que você escreve um arquivo em um SSD, o computador deve primeiro apagar todos os dados nos setores para os quais está gravando os dados. Ele não pode simplesmente “substituir” os setores em uma operação - deve primeiro limpá-los, depois escrever para os setores vazios..

    Isso significa que um SSD diminuirá com o tempo. Escrever para os setores do SSD será rápido na primeira vez. Depois de excluir alguns arquivos e tentar escrever novamente, isso levará mais tempo. Essa é uma grande parte do motivo pelo qual o Nexus 7 original do Google diminuiu muito com o tempo. O Google corrigiu isso implementando o TRIM no Android 4.3. (O Android também usa o kernel do Linux.)

    Com o TRIM ativado, o sistema operacional informa ao SSD toda vez que ele exclui um arquivo. A unidade pode então apagar os setores que contêm o conteúdo do arquivo, portanto, escrever para os setores será rápido no futuro.

    Em outras palavras, se você não usar o TRIM, seu SSD diminuirá com o tempo. É por isso que os sistemas operacionais modernos, incluindo o Windows 7+, o Mac OS X 10.6.8+ e o Android 4.3+ usam o TRIM. O TRIM foi implementado no Linux em dezembro de 2008, mas o Ubuntu não o usa por padrão.

    Por que não o Ubuntu TRIM por padrão?

    A verdadeira razão pela qual o Ubuntu não faz o TRIM SSD por padrão é porque a implementação do TRIM no kernel do Linux é lenta e resulta em baixo desempenho em uso normal.

    No Windows 7 e 8, o Windows envia um comando TRIM toda vez que ele exclui um arquivo, informando a unidade para excluir imediatamente os bits do arquivo. O Linux suporta isso quando os sistemas de arquivos são montados com a opção “descartar”. No entanto, o Ubuntu - e outras distribuições - não fazem isso por padrão por motivos de desempenho.

    O wiki do OpenSUSE contém algumas informações detalhadas de um desenvolvedor que está mais familiarizado com o kernel do Linux do que nós. É um pouco antiquado, mas provavelmente ainda é verdade quando se trata de desempenho:

    “A implementação do kernel do trim em tempo real em 11.2, 11.3 e 11.4 não está otimizada. A especificação exige trim que suporte uma lista vetorizada de faixas de trim, mas a partir do kernel 3.0 trim é invocado apenas pelo kernel com um único intervalo de descarte / compensação e com os atuais SSDs de meados de 2011 isso provou causar degradação de desempenho em vez de aumento de desempenho. Existem algumas razões para usar o suporte de descarte em tempo real dos kernels com kernels pré-3.1. Não se sabe quando a funcionalidade de descarte dos kernels será otimizada para funcionar beneficamente com os SSDs de geração atual. ”[Source]

    Em outras palavras, o kernel do Linux lida com esses comandos TRIM em tempo real de maneira lenta e não otimizada. Habilitar o TRIM similar ao modo como o Windows faz - isto é, usar a opção “discard” (descartar) - resulta no sistema realmente se tornando mais lento do que se TRIM não fosse usado. O Ubuntu e outras distribuições Linux não permitem o "descarte" por padrão para seus sistemas de arquivos, e você também não deve.

    Existe outro caminho

    Como a operação TRIM em “tempo real” do kernel do Linux não funciona bem, a maioria das distribuições Linux - incluindo o Ubuntu - não usa o TRIM automaticamente. O Android também não usou o TRIM até o Android 4.3.

    Mas há outra maneira de usar o TRIM. Em vez de simplesmente emitir o comando TRIM toda vez que um arquivo é excluído, o recurso FITRIM pode ser usado. Isso acontece por meio do comando fstrim. Essencialmente, o comando fstrim analisa o sistema de arquivos e informa à unidade quais blocos não são mais necessários, portanto, a unidade pode descartá-los. Isso transforma TRIM de uma operação em tempo real em uma tarefa agendada. Em outras palavras, o fstrim pode executar o TRIM como um cron job. Não há razão para não fazer isso. Não vai desacelerar nada; é apenas mais uma tarefa de faxina que o sistema deve executar em um cronograma.

    Na verdade, essa é a abordagem do Google com o Android 4.3. O Android simplesmente executa uma tarefa fstrim ocasionalmente para TRIM o sistema de arquivos, corrigindo o problema que reduziu a velocidade de todos os Nexus 7s originais.

    O Ubuntu também está procurando ativar o TRIM automaticamente fazendo com que o sistema execute regularmente o fstrim. Espera-se que isso faça parte do Ubuntu 14.04, para que os usuários do Ubuntu não sejam forçados a lidar com a degradação do desempenho do SSD ou executem o fstrim sozinhos..

    Como ativar o TRIM

    Não recomendamos montar seus sistemas de arquivos com a operação de "descarte", pois isso provavelmente resultará em desempenho mais lento em uso normal. No entanto, você pode usar o próprio TRIM executando ocasionalmente o comando fstrim ou criando seu próprio cronjob que executa o fstrim em um cronograma.

    Para TRIM seu SSD no Ubuntu, simplesmente abra um terminal e execute o seguinte comando:

    sudo fstrim -v /

    Você pode executar o comando acima ocasionalmente para evitar a degradação do desempenho em SSDs. A frequência com que você precisa executá-lo depende de quantas vezes os arquivos são excluídos do seu SSD. Você verá um erro se tentar executar o comando com uma unidade que não suporta TRIM.

    Se você deseja executar o TRIM regularmente, você pode simplesmente criar um cronjob que execute o comando fstrim para você. Veja como fazer um trabalho cron do barebone que fará isso automaticamente.

    Primeiro, execute o seguinte comando para abrir o editor de texto nano com permissões de root:

    sudo nano /etc/cron.daily/fstrim

    Digite o seguinte código no arquivo:

    #! / bin / sh

    fstrim /

    Salve o arquivo pressionando Ctrl + O e pressione Enter para confirmar. Pressione Ctrl + X para fechar o nano depois de salvar o arquivo.

    Por último, execute o seguinte comando para tornar o script executável:

    sudo chmod + x /etc/cron.daily/fstrim

    O Ubuntu agora rodará o fstrim em um cronograma, assim como faz outras tarefas de manutenção do sistema.


    Note que o TRIM só é suportado em sistemas de arquivos modernos, então você precisará de algo como ext4 e não ext3 ou ext2. Se você não sabe qual sistema de arquivos está usando, não se preocupe - o ext4 é selecionado por padrão.

    Muito deste conselho também se aplica a outras distribuições Linux. Embora o Linux tenha implementado o suporte a TRIM no kernel há muito tempo, seu suporte a TRIM parece nunca ter sido habilitado por padrão para usuários típicos em distribuições Linux.

    Crédito de imagem: Mace Ojala no Flickr (recortado)