Excesso de provisionamento de um SSD - ele ainda é válido?

14

Várias fontes (mas não muito recentes) sugerem que aproximadamente 7% do espaço do SSD não seja alocado para reduzir o desgaste da unidade. Ainda é válido por enquanto ou a situação mudou?

marmistrz
fonte
Isso importa por causa do problema de ativação do TRIM, como eu disse. Eu suspeito que SU é uma boa opção para esta pergunta, mas agora precisa ser editada para mencionar o Linux!
sourcejedi
o espaço livre permite um melhor desempenho. O desgaste do acionamento é exagerado e possivelmente um mito agora. Um SSD de boa qualidade pode durar mais de 10 anos gravando nele 24/7. este pode ser um bom artigo para analisar: howtogeek.com/165472/… - gravar em um bloco vazio é bastante rápido, mas gravar em um bloco parcialmente preenchido envolve a leitura do bloco parcialmente preenchido, modificando seu valor e, em seguida, escrevendo-o costas. Repita isso muitas e muitas vezes para cada arquivo gravado na unidade, pois o arquivo provavelmente consumirá muitos blocos. ---
Sun

Respostas:

15

O Windows geralmente usa o TRIM. Isso significa que, enquanto você tiver X% de espaço livre no sistema de arquivos, a unidade verá X% como não alocado. [*] O provisionamento em excesso não é necessário.

Exceção: historicamente, os SSDs com controladores / firmware Sandforce não restauraram o desempenho completo após o TRIM :(.

A perda de desempenho na unidade completa pode ser significativa e mais do que em outras unidades. Isso será associado à alta amplificação de gravação e, portanto, aumenta o desgaste. Fonte: Anandtech reviews.

Portanto, é necessário se e somente se

  • você não tem certeza de que o TRIM será usado. O AFAIK ainda não está ativado por padrão no Linux, devido a problemas de desempenho em algumas unidades antigas e com mau comportamento.
  • OU você está preocupado em encher uma unidade Sandforce (e que o conteúdo não seja passível de compressão pelo controlador inteligente).

Não é muito difícil habilitar o TRIM no Linux, e é improvável que você note problemas.

Felizmente, várias das marcas mais populares fazem seu próprio controlador. Os controladores Sandforce não são tão populares como costumavam ser. Os problemas do Sandforce me deixam cético em relação ao design específico do controlador "inteligente", que foi muito agressivo para a época. Desculpas ao Sandforce, mas não tenho uma referência para os modelos exatos de controladores afetados.


[*] Os sistemas de arquivos também gostam de ter bastante espaço livre para reduzir a fragmentação. Portanto, o TRIM é ótimo, porque você não precisa adicionar duas margens de segurança, o mesmo espaço livre ajuda os dois :). A unidade pode aproveitar o espaço não alocado para melhorar o desempenho, além de evitar alto desgaste, como você diz.

sourcejedi
fonte
É possível detectar um controlador Sandforce depois de ter um SSD instalado?
Marmistrz
Não há uma leitura padrão ou um teste que eu saiba. Você precisa saber qual é a unidade e tentar procurá-la. Tudo o que posso ver é um "número do modelo", por exemplo, nos discos GNOME como "M4-CT128M4SSD2", que pode ser difícil de combinar. Desculpe de novo. Acredito que a Samsung use seus próprios controladores e a Crucial / Micron use Marvell. A OCZ / Toshiba usou vários controladores, incluindo o Sandforce.
sourcejedi
Isso pressupõe que você realmente tenha espaço livre no sistema de arquivos, certo? : D
endólito
Seja específico sobre qual parte você está respondendo, isso foi há mais de um ano. Eu acho que você quer dizer "[hipotético] não tenho disciplina, preciso que meu sistema recue contra o abuso contínuo e não tenho software para acionar um alarme de marca d'água alta". O que é uma crítica perfeitamente válida, embora interessante por alguém que consideraria o excesso de provisionamento em primeiro lugar.
sourcejedi 15/09/16
7

Os controladores SSD modernos são inteligentes o suficiente para que o provisionamento em excesso não seja normalmente necessário para o uso diário. No entanto, ainda existem situações, principalmente em ambientes de datacenter, onde o aprovisionamento excessivo é recomendado. Para entender por que o provisionamento em excesso pode ser útil, é necessário entender como os SSDs funcionam.

Os SSDs devem lidar com as limitações da memória flash ao gravar dados

Os SSDs usam um tipo de memória chamada memória flash NAND . Ao contrário dos discos rígidos, as células NAND que contêm dados não podem ser substituídas diretamente; a unidade precisa apagar os dados existentes antes de poder gravar novos dados. Além disso, enquanto os SSDs gravam dados em páginas com tamanho tipicamente de 4 a 16 KB, eles podem apenas apagar dados em grandes grupos de páginas chamados de blocos , normalmente de centenas de KB a vários MBs em SSDs modernos.

A NAND também possui uma quantidade limitada de resistência à gravação . Para evitar a reescrita de dados desnecessariamente, a fim de apagar blocos e garantir que nenhum bloco receba um número desproporcional de gravações , a unidade tenta espalhar gravações, especialmente gravações aleatórias pequenas, em diferentes blocos. Se as gravações substituírem dados antigos, marcará as páginas antigas como inválidas. Quando todas as páginas de um bloco são marcadas como inválidas, a unidade fica livre para apagá-la sem precisar reescrever dados válidos.

Os SSDs precisam de espaço livre para funcionar da maneira ideal, mas nem toda carga de trabalho é propícia à manutenção de espaço livre

Se a unidade tiver pouco ou nenhum espaço livre restante, não será possível distribuir gravações. Em vez disso, a unidade precisará apagar os blocos imediatamente, à medida que as gravações forem enviadas para a unidade, reescrevendo quaisquer dados válidos dentro desses blocos em outros blocos. Isso resulta em mais dados sendo gravados no NAND do que os enviados ao inversor, um fenômeno conhecido como amplificação de gravação . A amplificação de gravação é especialmente pronunciada com cargas de trabalho com uso intenso de gravação aleatória, como OLTP (processamento de transações on-line) , e precisa ser mantida no mínimo, pois resulta em desempenho e resistência reduzidos.

Para reduzir a amplificação de gravação, a maioria dos sistemas modernos oferece suporte a um comando chamado TRIM , que informa à unidade quais blocos não contêm mais dados válidos para que possam ser apagados. Isso é necessário porque, caso contrário, a unidade precisaria assumir que os dados excluídos logicamente pelo sistema operacional ainda são válidos, o que dificulta a capacidade da unidade de manter espaço livre adequado.

No entanto, o TRIM às vezes não é possível, como quando a unidade está em um gabinete externo (a maioria dos gabinetes não suporta o TRIM) ou quando a unidade é usada com um sistema operacional mais antigo. Além disso, sob cargas de trabalho de gravação aleatória altamente intensivas, as gravações serão distribuídas por grandes regiões da NAND subjacente, o que significa que a reescrita forçada dos dados e a amplificação de gravação do atendente podem ocorrer mesmo se a unidade não estiver quase cheia.

Os SSDs modernos experimentam significativamente menos amplificação de gravação do que as unidades antigas, mas algumas cargas de trabalho ainda podem se beneficiar do excesso de provisionamento

Os SSDs mais antigos tinham firmware muito menos maduro que tenderia a reescrever dados com muito mais frequência do que o necessário. Os primeiros controladores Indilinx e JMicron ( o JMF602 era famoso por gaguejar e abismalmente o desempenho de gravação aleatória ) sofriam de uma amplificação de gravação extremamente alta sob cargas de trabalho intensivas de gravação aleatória, às vezes excedendo 100x. (Imagine escrever mais de 100 MB de dados no NAND quando estiver apenas tentando gravar 1 MB!). Controladores mais novos, com o benefício de maior poder de processamento, algoritmos aprimorados de gerenciamento de flash e suporte a TRIM, são muito mais capazes de lidar com essas situações, embora cargas de trabalho pesadas de gravação aleatória ainda possam causar amplificação de gravação acima de 10x nos SSDs modernos .

O excesso de provisionamento fornece à unidade uma região maior de espaço livre para lidar com gravações aleatórias e evitar a reescrita forçada dos dados. Todos os SSDs são provisionados em excesso em pelo menos algum grau mínimo; alguns usam apenas a diferença entre GB e GiB para fornecer cerca de 7% de espaço livre para a unidade trabalhar, enquanto outros têm mais aprovisionamento para otimizar o desempenho para as necessidades de aplicativos específicos. Por exemplo, um SSD corporativo para cargas de trabalho OLTP ou banco de dados com gravação pesada pode ter 512 GiB de NAND físico e ainda ter uma capacidade anunciada de 400 GB, em vez dos 480 a 512 GB típicos de SSDs de consumo com quantidades semelhantes de NAND.

Se sua carga de trabalho for particularmente exigente ou se você estiver usando a unidade em um ambiente em que o TRIM não é suportado, você poderá provisionar espaço em excesso manualmente, particionando a unidade para que algum espaço não seja utilizado. Por exemplo, você pode particionar um SSD de 512 GB a 400 GB e deixar o espaço restante não alocado, e a unidade usará o espaço não alocado como espaço livre. Observe, no entanto, que esse espaço não alocado deve ser aparado se tiver sido gravado anteriormente; caso contrário, não terá nenhum benefício, pois a unidade verá esse espaço ocupado. (Os utilitários de particionamento devem ser inteligentes o suficiente para fazer isso, mas não tenho 100% de certeza; consulte "O Windows corta espaço não particionado (não formatado) em um SSD?" )

Se você é apenas um consumidor normal, o provisionamento em excesso geralmente não é necessário

Em ambientes típicos de consumo nos quais o TRIM é suportado, o SSD está com menos de 70 a 80% de capacidade e não fica continuamente sobrecarregado com gravações aleatórias, a amplificação de gravação normalmente não é um problema e o provisionamento excessivo geralmente não é necessário.

Por fim, a maioria dos consumidores não gravará dados suficientes no disco para desgastar o NAND dentro da vida útil prevista da maioria dos SSDs, mesmo com alta amplificação de gravação, portanto, não é algo para perder o sono.

bwDraco
fonte
1

O tamanho do espaço adicional difere muito entre os modelos de unidades SSD, mas em geral isso ainda é verdade.

Tomasz Klim
fonte
Você tem alguma referência para isso?
Léo Lam
Você quer dizer referência para uma unidade específica? Muitas unidades (não apenas SSD) têm referências técnicas públicas, mas desculpe, não tenho tempo para pesquisar. No entanto, se você estiver interessado em referência geral, verificar isso: samsung.com/global/business/semiconductor/minisite/SSD/...
Tomasz Klim
1
Sim, eu queria saber se isso ainda é verdade para todas as unidades, ou apenas para modelos ou marcas específicas, pois a outra resposta sugere que o provisionamento em excesso não é mais necessário em unidades recentes.
Léo Lam
A outra resposta não está exatamente correta. Na verdade, as unidades com controladores Sandforce tinham muito espaço adicional. Isso é perfeitamente verdade. Mas também qualquer outro controlador SSD usa espaço adicional, mas não tanto. Como isso provavelmente não vai mudar.
Tomasz Klim
1
No documento para o SSD da Samsung: "sempre há a opção de reservar manualmente espaço adicional para um desempenho ainda melhor (por exemplo, sob cargas de trabalho exigentes)", ou seja, eles sugerem que você não precisa começar a considerar isso, a menos que tenha um " carga de trabalho exigente ".
sourcejedi