O pouco espaço em disco afeta o desempenho do SSD?

16

Eu queria saber se ter menos de 5 a 10 GB de espaço livre em um SSD afetaria o desempenho. É específico para SSD ou é mais um aspecto do sistema operacional?

Por exemplo, em um Intel X-25 G2 com suporte a TRIM (no Windows 7).

Gabe
fonte

Respostas:

14

A maioria dos SSDs fica mais lenta à medida que se enchem. Os SSDs tendem a escolher blocos vazios para escrever, já que só podem modificar um bloco apagando e reescrevendo o bloco inteiro. Depois que todos esses blocos estiverem parcialmente preenchidos, todas as operações de gravação precisarão apagar e reescrever, o que significa que o SSD deve ler o bloco no cache, modificar o cache com os novos dados, apagar o bloco e gravar o cache. Isso resulta em uma leitura e duas operações de programação para cada bloco que precisa ser modificado. Além disso, embora a fragmentação tenha muito pouco efeito nos SSDs, a alta fragmentação e o fato de a maioria dos sistemas operacionais desconhecer os SSDs podem fazer com que o sistema operacional emita mais gravações do que o necessário. Os blocos do SSD geralmente são maiores que as unidades de alocação do sistema operacional; portanto, se o SSD não estiver esperando gravações extras, pode acabar repetindo o mesmo processo de três etapas várias vezes por bloco, diminuindo ainda mais as gravações. Mesmo a exclusão de arquivos não resolve esse problema, porque os dados permanecem lá e o SSD não sabe que não é mais usado e continua reescrevendo esses dados excluídos.

A operação TRIM, suportada pela sua unidade, permite que o sistema operacional diga à unidade para se livrar dos dados excluídos. Isso permite que o inversor recupere blocos vazios. No entanto, os únicos sistemas operacionais que oferecem suporte ao TRIM são as distribuições do Windows 7, Windows Server 2008 R2 e Linux usando o kernel 2.6.33 ou posterior.

Como você possui o Windows 7, seu sistema está usando o comando TRIM e pode recuperar os blocos não utilizados. No entanto, o TRIM não reorganiza os dados; portanto, se a unidade estiver quase cheia, a alta fragmentação ainda poderá fazer com que os dados ocupem parcialmente os blocos e limita a eficácia do TRIM. A melhor coisa a fazer, tanto quanto eu posso dizer, é liberar o máximo de espaço em disco possível. Se você puder liberar espaço suficiente, os blocos completos poderão ser cortados e sua unidade recuperará alguma velocidade. Além disso, existem programas de desfragmentação voltados para SSDs, o que significa que eles apenas desfragmentam o suficiente para aparar alguns blocos extras, mas não conheço nenhum gratuito. Eu acho que o Diskeeper deve fazer isso, mas é caro e já ouvi críticas muito mistas.

TuxRug
fonte
11
A camada FTL fica abaixo do nível do sistema de arquivos. Embora possa parecer que o sistema de arquivos está fragmentado, isso NÃO significa que a camada FTL está fragmentada. Esses programas de "desfragmentação" do SSD são inúteis, eles não conseguem acessar a camada FTL, é o óleo de cobra. Agora, a falta de espaço livre torna o SSD mais lento, pois ele tem menos espaço para coletar lixo e usar nivelamento, e todas essas coisas boas. Os SSDs não selecionam automaticamente blocos vazios por si só, eles também precisam levar em consideração o nivelamento de desgaste. Resumindo, o sistema de arquivos NÃO sabe nada sobre como ele armazena as coisas na camada FTL
Time Twin
Os sistemas de arquivos não otimizados para SSD não conseguem aparar tanto, o que tem o mesmo efeito que um espaço livre menor.
Basilevs
4

Em este excelente artigo no AnandTech, eles exploram a relação entre a área de reserva e o desempenho SSD. A conclusão é que todos os SSDs obtêm / mantêm desempenho ao deixar parte de seu espaço sem uso. Às vezes, há até uma diferença entre 25% de espaço livre e 50% de espaço livre.

Stefan Seidel
fonte
3

Depende de um modelo SSD específico, fornecedor e padrões de uso.

Em algumas situações, um SSD intensivamente usado pode oferecer um desempenho significativamente degradado, desconsiderando a quantidade de espaço em disco usado que requer uma limpeza de baixo nível para restaurar para um nível de desempenho semelhante ao novo.

ocsid80
fonte
Por exemplo, em um Intel X-25 G2 com suporte a TRIM (no Windows 7).
Gabe
0

Ouvi dizer que os SSDs tendem a desacelerar quando ficam quase cheios, mas acho que seria necessário menos de 5 a 10 GB de espaço livre para que você sentisse algo assim. Talvez quando você tiver menos de 1 GB restante ou algo assim.

Ben
fonte
0

Os sistemas de arquivos em geral ficam lentos quando ficam cheios. É devido à fragmentação. Em um disco vazio, você pode ter certeza de que pode gravar um arquivo em um bloco. À medida que o sistema de arquivos fica mais cheio, diminuem as chances de caber o arquivo em um único bloco contíguo, e você precisa fazer cada vez mais buscas para encontrar os dados, convertendo o que originalmente era um acesso seqüencial de dados em um mais como um acesso aleatório de dados e, portanto, mais lento.

gorila
fonte
2
Isso não se aplica aos SSDs porque não há partes móveis; portanto, os acessos aleatórios adicionam uma quantidade insignificante de tempo de acesso. Talvez você precise ter um arquivo pulando com milhares de fragmentos colocados aleatoriamente para ter um impacto perceptível, que seria principalmente do próprio sistema operacional planejando suas leituras e gravações.
TuxRug
11
Ainda existe uma diferença entre leituras sequenciais e leituras aleatórias. Por exemplo, codinghorror.com/blog/2008/06/… fornece 26 MB / s para leitura seqüencial e 6 Mb / s para leitura aleatória.
gorila
@TuxRug: as unidades são agrupadas em blocos de apagamento de centenas de Kbytes ou mais; depois que uma página (representando 512 ou 4096 bytes de dados do "disco lógico") é gravada, ela não pode ser reescrita, exceto apagando todas as páginas dentro de seu bloco. Quando um setor de "disco lógico" é substituído, a unidade aloca uma página anteriormente em branco para conter seu novo conteúdo e observa que a página antiga pode ser considerada obsoleta. Em vez de apagar as páginas obsoletas imediatamente, a maioria das unidades espera até precisar do espaço e, em seguida, procura um bloco em que a maioria ou todas as páginas estão obsoletas.
supercat
@TuxRug: Se o número de páginas vazias ficar criticamente baixo, o desempenho da unidade será proporcional ao maior número de páginas gratuitas ou obsoletas em qualquer bloco [se houver 10 blocos cada com 15 páginas obsoletas, nas próximas 150 gravações, uma gravação / apagar ciclo será necessário a cada 15º. Se houvesse três blocos cada um com 50 páginas obsoletas, um ciclo de gravação / apagamento seria necessário apenas a cada 50ª gravação.] A fragmentação aumenta a probabilidade de que um acabe com muitos blocos com apenas algumas páginas obsoletas.
Supercat
0

Outro fator importante é se e quanto o provisionamento em excesso é definido pelo fabricante do SSD, conforme explicado aqui . O excesso de provisionamento significa que algum espaço é reservado para atividades em segundo plano, como coleta de lixo, e não disponibilizado ao usuário. Por exemplo, um SSD anunciado como 256 GB pode realmente ser 282 GB se 10% de provisionamento em excesso estiver definido.

Se o fabricante do SSD tiver sido generoso com o excesso de provisionamento de espaço, o pouco espaço em disco poderá não afetar muito o desempenho, por exemplo, mesmo um SSD que pareça 100% cheio pode na verdade estar com apenas 85%. Mas se você conseguir preencher seu SSD perto de 100%, isso causaria uma degradação significativa no desempenho.

Em resumo, a quantidade do efeito e se ele será perceptível é específico do SSD. Mas, como regra geral, os SSDs têm melhor desempenho quando estão quase vazios e seu desempenho se deteriora à medida que são preenchidos, por razões explicadas em outras respostas e no link.

Debie Downer
fonte