Ir ao conteúdo
  • Cadastre-se

Como evitar fragmentacao no SSD?


Yan_

Posts recomendados

2 horas atrás, GabrielLV disse:

Você saberá que está com um nível de fragmentação muito alto quando começar a ter perda de performance (nesse caso a desfragmentação fará toda a diferença), sendo que para o cenário doméstico, é extremamente raro de acontecer, por tanto, a desfragmentação é dispensável 😉

 

Bom, a referência do Baboo é bem autoritativa. Por um tempo pelo menos, já que a tecnologia está toda hora mudando e, se um dia as dicas folclóricas já foram verdade, as verdades bem fundamentadas de hoje pode igualmente virar as fake news de amanhã. :)  De fato teve uma coisa que o Baboo falou no último vídeo que de acordo com uma publicação mais recente que li hoje já não é verdade mais, eu até ia apontar o que era, mas perdi a postagem aqui no celular e não vou ver o vídeo de novo pra tentar caçar o que era.

 

Esse outro MVP linkado abaixo, que foi atrás do assunto fragmentação em SSDs também, fala algo na mesma linha: que fragmentação excessiva pode reduzir performance por causa do excesso de IOPS e que deixar fragmentar sem nunca desfragmentar pode gerar um número de metadados (isto é, dados sobre outros dados) referentes aos fragmentos no sistema de arquivos superior ao máximo que o sistema de arquivos suporta. Isso implica nele não ser capaz de criar fragmentos novos para os dados que estão sendo escritos (independente do espaço que está livre na unidade) e começar a devolver os erros para o sistema operacional, que por sua vez repassa à aplicação, que começa a apresentar falhas. O Windows pode sofrer esse problema no longo prazo por conta do recurso de gerar instantâneos (snapshots) de recuperação do disco (recurso este que os sistemas de arquivos usados no Linux, apesar de superiores em lidar com fragmentação, não suportam). O Windows 10 resolve isso desfragmentando os SSDs uma vez por mês.

https://www.thewindowsclub.com/defragmentation-of-ssd-windows

 

Então pode não ser tão raro assim num usuário desktop, sei lá, ele pode ter deixado desabilitados os snapshots do Windows 10 por muito tempo, ou por alguma razão ter uma quantidade absurda de arquivos fragmentados, ou talvez essa fragmentação ter sido piorada pela falta de espaço livre no SSD...

 

Também cabe desmentir uma afirmação minha, como o impacto da fragmentação alta tem a ver com o número de interações com o sistema de arquivos que por sua vez gera overhead de CPU e de I/O, então tem a ver com o sistema operacional sim... Windows está mais sujeito porque usa NTFS, bem mais que o Linux cujos sistemas de arquivos EXT já evitam a fragmentação sempre que possível no momento da escrita dos arquivos, pelo que andei lendo.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

1 hora atrás, rpioveza disse:

 como o impacto da fragmentação alta tem a ver com o número de interações com o sistema de arquivos que por sua vez gera overhead de CPU e de I/O, então tem a ver com o sistema operacional sim... Windows está mais sujeito porque usa NTFS, bem mais que o Linux cujos sistemas de arquivos EXT já evitam a fragmentação sempre que possível no momento da escrita dos arquivos, pelo que andei lendo.

 

Para afirmar, estou me baseando nisso:

https://superuser.com/a/1391884/657587

 

Note que esse impacto da fragmentação na performance pode eventualmente não ter relação nenhuma com falta de espaço e portanto com excesso de nivelamento estático como havíamos cogitado, embora essa relação seja possível. No nível da controladora a fragmentação é uma feature e promovida para aumentar a vida útil do SSD, entendo que sejam fragmentações ocorrendo em níveis diferentes.

Link para o comentário
Compartilhar em outros sites

A conclusão que eu "acho" que eu estou chegando sobre a desfragmentação no SSD é que aparentemente ela ajuda a juntar os fragmentos de arquivos maiores colocando eles meio que na sequência dentro do bloco e que antes estavam esparramados por outros blocos ou que que estavam dividindo o bloco com outros fragmentos de outros arquivos ou mesmo com o lixo .. Não sei se o Trim junta os fragmentos de um determinado arquivo em um bloco ou se ele coloca em algum outro bloco que  tenha outro fragmento válido de algum arquivo diferente, apenas completando o espaço desse bloco .. Claro, isso para  fragmentos de arquivos que não chegam a ocupar um bloco inteiro..  Uma coisa é certa , se  os fragmentos de um determinado arquivo estiver na mesma sequência e dentro de um mesmo bloco , melhor vai ser a leitura desse bloco. Vai ser menos trabalhoso até na hora de deletar o lixo, porque vai limpar o bloco inteiro de uma vez e não vai ter fragmento de arquivo valido para passar para outro bloco.

 

Mas se for isso mesmo, não tem necessidade nenhuma de desfragmenta o SSD uma vez por mês .. Nesse caso a desfragmentação deveria ser feita somente quando o SSD perder muito do desempenho original devido a desfragmentação( não confundir com a perda de desempenho por causa do SSD lotado), e esse tempo vai depender do uso, da quantidade de dados, da capacidade que o SSD tem lidar com os dados fragmentados, etc...

Link para o comentário
Compartilhar em outros sites

33 minutos atrás, zex disse:

Mas se for isso mesmo, não tem necessidade nenhuma de desfragmenta o SSD uma vez por mês .. Nesse caso a desfragmentação deveria ser feita somente quando o SSD perder muito do desempenho original devido a desfragmentação( não confundir com a perda de desempenho por causa do SSD lotado), e esse tempo vai depender do uso, da quantidade de dados, da capacidade que o SSD tem lidar com os dados fragmentados, etc...

 

Não vou especular muito porque nem a certeza de como é essa leitura de blocos sequenciais eu tenho. Suponho que seja uma informação de que um conjunto de blocos/páginas a serem lidos é maior do que um conjunto com poucas a ler, e de alguma forma é mais vantajoso ler essa quantidade maior de uma vez em sequência. Em discos rígidos essa vantagem é evidente porque causa menos deslocamento da agulha e portanto menos latência, no SSD essa vantagem não acontece por conta dos seek times próximos de O(1) (traduzindo, quase instantâneos qualquer que seja a localização do dado), mas, como envolve menos overhead do sistema operacional,  fazendo só uma grande sessão de I/O em vez de alternar I/O com desvios de controle para outras funções ou outras trocas de contexto do S.O. (como escalonamento de processos), acaba sendo vantajoso para SSDs também, do que a alternativa de leituras mais frequentes e menores.

 

Concordo que essa desfragmentação agendada provavelmente está superestimada, com intenção de atender a grande maioria dos casos, e muitas vezes poderia ser feita com intervalos de tempo maiores, mas acho que é complicado para o sistema operacional ficar configurando (ou o que seria pior, dando ao usuário a opção de configurar) intervalos variados conforme o grau de fragmentação ou  estimativa semelhante. É um trade-off que eles devem ter calculado para atender algo superior à média dos dados deslocados devido à criação de snapshots do disco (uma medida que por telemetria eles devem facilmente ter) e que deve reduzir um impacto sobre a vida útil dos SSDs que já deve ser irrisório atualmente.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...