Categories
Tutoriais

Por que as unidades SSD se tornam mais lentas com o tempo

O principal motivo de uma unidade SSD se tornar mais lenta é estar com sua capacidade quase esgotada.
Neste artigo, vou mostrar por que isto acontece e como você pode evitar ou resolver o problema –, se ele já estiver ocorrendo.
ssd kingston - por que a unidade está mais lenta.
Resultados de testes mostram que as unidades de estado sólido, SSD (Solid-state drives), perdem eficiência à medida em que suas capacidades de armazenamento vai se esgotando.
Se você tem uma unidade SSD, pode fazer o teste por sim mesmo — principalmente se a capacidade for pequena (de algumas dezenas de gigabytes). Ela fica mais lenta, quando fica mais cheia.
O motivo para este comportamento está nas características dos SSDs e dos dispositivos de armazenamento flash NAND.
O fato é que você deve evitar a todo custo preencher toda a capacidade de um drive SSD — uma das consequências de um drive lento é que todo o seu sistema vai sofrer com isto.

Blocos vazios e blocos parcialmente preenchidos

Quando você manda gravar um arquivo na sua unidade de estado sólido, ela procura por blocos vazios onde o possa acomodar.
A operação de gravação é mais rápida sempre que ocorrer em um bloco vazio.
Nos discos rígidos (HDs), os blocos não são automaticamente esvaziados, quando os arquivos que os ocupam são apagados pelo sistema operacional — por isto é que é quase sempre possível recuperar arquivos apagados, acidentalmente ou não, em discos rígidos.
Na verdade, um disco rígido costuma estar sempre repleto de bits de arquivos que já foram “apagados”.
— e, só para não ficar mal entendido: quando eu digo que “é possível” recuperar arquivos “deletados” de um disco rígido isto não quer dizer que seja fácil ou mesmo líquido e certo.
No que tange as unidades SSD, os sistemas operacionais mais novos usam um recurso chamado TRIM — que consiste em remover os dados do arquivo na unidade, tão logo você o apague no sistema operacional.
Não há bits de dados, que você desejava que fossem removidos, espalhados pela unidade de estado sólido — por que o TRIM se assegura de que cada bloco esteja vazio para receber rapidamente os novos dados que chegarem no futuro.

Se você usa uma versão atual do Linux, como o Ubuntu 14.04 LTS, o seu sistema operacional tem total suporte ao TRIM. (OMGUbuntu!)

Esta é uma das diferenças entre o HDD e o SSD — pro primeiro, escrever dados novos em cima dos dados velhos, em um bloco já usado, é tão rápido quanto escrever em um bloco totalmente vazio.
As memórias flash NAND gravam dados em páginas de 4Kb dentro de blocos de 256 Kb. Para adicionar páginas a um bloco parcialmente ocupado a unidade de estado sólido precisa apagar todo o bloco antes de gravar nele.

nand flash memory pages and blocks.png
Clique, para ver detalhes.

À medida em que o espaço disponível na sua unidade SSD vai se reduzindo, ela vai ter cada vez menos blocos totalmente vazios e mais blocos parcialmente preenchidos.
Como você já sabe, a unidade não grava em blocos parcialmente preenchidos — ela precisa limpar seu conteúdo antes.
Portanto, em vez de simplesmente gravar os dados, como um HD faria, ela faz o seguinte:

  • lê o conteúdo do bloco e o armazena no cache;
  • acrescenta os novos dados ao conteúdo armazenado no cache e
  • grava tudo de volta no bloco.

Agora, leve em conta que a gravação de um arquivo pode envolver uma grande quantidade de blocos, o que multiplica a quantidade de vezes que ese processo vai ter que ser realizado.

O TRIM não consolida os blocos parcialmente preenchidos

Ao esgotar a capacidade de armazenamento de um drive, ele provavelmente conterá uma grande quantidade de blocos parcialmente preenchidos, antes de você começar a remover arquivos.
O recurso TRIM, de que falamos antes, não força o dispositivo a qualquer procedimento de limpeza ou reorganização.
Tudo o que ele faz é remover os dados do arquivo quando o sistema operacional manda apagar (em vez de apenas marcar o seu espaço como disponível).
Em outras palavras, a capacidade de armazenamento de um dispositivo de estado-sólido se esgota, mesmo tendo uma enorme quantidade de blocos parcialmente preenchidos.
O drive não vai reorganizar o espaço por conta própria, preventivamente.
E, assim, a performance da gravação de novos dados sofrerá uma crescente degradação.

Prevenção: Overprovisioning e Garbage Collection

Para impedir que você preencha completamente o seu drive e prejudique seriamente sua eficiência, os fabricantes adotaram algumas medidas.
As unidades vêm com um percentual do seu espaço reservado e não disponível ao usuário — isto é chamado de overprovisioning.
Trata-se de um espaço extra de armazenamento, que não é visível pro computador como área disponível para guardar seus dados.
Assim, o drive nunca vai ficar completamente cheio.
Aliado a isto, cada controladora de unidade SSD tem um algoritmo que executa a coleta de lixo (garbage collection) — que consiste em tentar encontrar os blocos parcialmente preenchidos e consolidá-los, liberando a maior quantidade possível de blocos.
A maneira e a frequência com que esta operação é realizada, bem como a quantidade de armazenamento extra, variam de acordo com os fabricantes e modelos de controladoras.

Conclusão

Uma das formas de se resolver o problema é adquirir novos dispositivos de armazenamento, com maiores capacidades, sempre que necessário.
Mas todo mundo sabe que nem sempre isto é possível (quase sempre, não é).
Enfim, é por isto que acredito que as pessoas consultam o geek — elas querem a melhor solução, pelo menor custo, da maneira mais fácil (sem sacrificar a qualidade) etc.
Já que não existe mágica, a recomendação é mais ou menos a óbvia: não permitir que o seu drive chegue a 75% de ocupação.
Com esta taxa, é possível ter um equilíbrio razoável entre o que pagou, pela capacidade de armazenamento que possuiu e pela eficiência do drive.
Planeje o uso da sua unidade SSD para manter sempre 25% de seu espaço livre. Eventualmente, você pode precisar usar este espaço e “pagar o preço” da queda do desempenho, temporariamente.
Se precisar de mais espaço, pense em soluções de armazenamento de dados nas nuvens ou em mídia externa.

Referências:
pt.wikipedia.org/wiki/Memória_flash#Flash_NAND
en.wikipedia.org/wiki/Write_amplification
http://www.howtogeek.com/165542/why-solid-state-drives-slow-down-as-you-fill-them-up/

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

3 replies on “Por que as unidades SSD se tornam mais lentas com o tempo”

Teu site é muito informativo! Estava pensando que é um site em inglês com tradução automática do Chrome, mas quando vi a referência para a Wikipédia em PT, percebi que é conteúdo em português e até estranhei ter material tão bom no nosso idioma.
Continue com o site! Obrigado e abraço!

Matéria direta e bem didática, entendi tudo! Eu comprei um SSD recentemente e estava atrás de informações sobre o funcionamento desse tipo de memória. Posso dizer que sua postagem esclareceu minhas dúvidas, agora sei o que fazer para manter meu SSD rápido. Vou guardar os arquivos pesados no disco rígido externo. Parabéns pela postagem, me ajudou!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.