Os benchmarks são claros: Drives de estado sólido desacelere enquanto você os preenche. Encha sua unidade de estado sólido até quase a capacidade total e seu desempenho de gravação diminuirá drasticamente. O motivo está na maneira como os SSDs e o armazenamento NAND Flash funcionam.
Preencher a unidade até a capacidade máxima é uma das coisas que você nunca deve fazer com uma unidade de estado sólido . Uma unidade de estado sólido quase cheia terá operações de gravação muito mais lentas, tornando o computador mais lento.
Blocos vazios e blocos parcialmente preenchidos
Quando você grava um arquivo em sua unidade de estado sólido, ele procura blocos vazios e os preenche. Gravar em um bloco vazio é a operação de gravação mais rápida possível. É por isso que novos sistemas operacionais (Windows 7 e posterior) suportam o recurso TRIM, que exclui automaticamente os dados de um arquivo da unidade de estado sólido assim que você exclui o arquivo em seu sistema operacional. Isso funciona de forma diferente de discos rígidos magnéticos, onde pedaços de arquivos excluídos ficam no disco rígido .
Eles não ficam em uma unidade de estado sólido - o TRIM garante que o bloco seja esvaziado para que o SSD possa gravar novos dados rapidamente no bloco vazio no futuro. Escrever sobre um setor já gravado é tão rápido quanto escrever para um setor vazio em um disco rígido mecânico, mas uma unidade de estado sólido deve apagar um bloco antes de gravar nele.
A memória Flash NAND grava dados em páginas de 4 KB dentro de blocos de 256 KB. Para adicionar páginas adicionais a um bloco parcialmente preenchido, a unidade de estado sólido deve apagar o bloco inteiro antes de gravar os dados de volta nele.
À medida que sua unidade de estado sólido enche, cada vez menos blocos vazios ficam disponíveis. Em seu lugar estão blocos parcialmente preenchidos. A unidade de estado sólido não pode simplesmente gravar os novos dados nesses blocos parcialmente preenchidos - isso apagaria os dados existentes. Em vez de uma operação de gravação simples, a unidade de estado sólido tem que ler o valor do bloco em seu cache, modificar o valor com os novos dados e depois gravá-lo de volta. Lembre-se de que a gravação de um arquivo provavelmente envolverá a gravação em muitos blocos, portanto, isso pode causar um atraso adicional significativo.
TRIM não consolida blocos parcialmente preenchidos
Se você preencher uma unidade até a capacidade máxima ou quase lotada, é provável que você termine com muitos blocos parcialmente preenchidos após excluir os arquivos. O comando TRIM apenas direciona uma unidade de estado sólido para remover os dados do arquivo quando o arquivo é excluído. Não força a unidade a fazer qualquer tipo de operação de limpeza.
Em outras palavras, encha uma unidade de estado sólido até a capacidade máxima antes de excluir arquivos e você provavelmente terminará com muitos blocos parcialmente preenchidos. A unidade não se desviará de seu caminho para consolidar esses blocos parcialmente preenchidos em blocos inteiros, liberando blocos vazios. A unidade ainda estará cheia de blocos parcialmente preenchidos e o desempenho de gravação será degradado.
Superprovisionamento e coleta de lixo
Para evitar que os consumidores encham suas unidades de estado sólido e acabem com o desempenho gravemente degradado, os fabricantes de SSD estão se esforçando para evitar isso.
As unidades de estado sólido para consumidor geralmente reservam cerca de 7% de seu armazenamento flash total e o tornam indisponível para o usuário. Isso é conhecido como “superprovisionamento” - hardware de armazenamento extra é adicionado à unidade, mas não fica visível para o computador como armazenamento disponível que ele pode usar. A área sobressalente garante que a unidade nunca fique completamente cheia - sempre haverá alguma capacidade sobressalente para ajudar a manter o desempenho de gravação estável.
Cada controlador de unidade de estado sólido tem um algoritmo de coleta de lixo para tentar mitigar esse problema. Quando a unidade ficar cheia, ela procurará os blocos parcialmente preenchidos e começará a consolidá-los, liberando o máximo possível de blocos vazios. Diferentes drives de estado sólido executam essas operações em momentos e limites diferentes - isso depende do controlador do drive.
Evidência de referência
Anandtech realizou uma variedade de benchmarks com unidades diferentes para descobrir a relação entre a área sobressalente de uma unidade de estado sólido e a consistência de seu desempenho de operação de gravação. Ao preencher uma unidade vazia, eles encontraram alto desempenho de gravação logo no início do processo e uma queda significativa à medida que as operações de gravação continuavam a preencher a unidade.
Reservar mais área livre nas unidades ajudou a manter o desempenho consistente, pois garantiu que a unidade sempre tivesse blocos vazios suficientes prontos.
Eles descobriram que “o desempenho mínimo melhora substancialmente quando você atinge 25% da área sobressalente para essas unidades [consumer]”. A recomendação final deles era que você deveria “planejar usar apenas cerca de 75% da capacidade [your drive’s] se você quiser um bom equilíbrio entre consistência de desempenho e capacidade”.
Se você tiver uma unidade de estado sólido, deve tentar evitar o uso de mais de 75% de sua capacidade. Compre uma unidade maior com mais armazenamento do que o necessário e você garantirá que sempre terá um desempenho de gravação consistente. Felizmente, os SSDs estão gradualmente se tornando muito mais baratos, então isso não é tão caro quanto antes.
Crédito da imagem: Classificador de música no Wikimedia Commons , Simon Wüllhorst no Flickr