Este artigo exemplifica o caso real ocorrido há alguns anos aonde foi necessário realizar a desfragmentação de SSD utilizados no servidor do Fórum do BABOO, por mais que isso seja considerado desnecessário e até “perigoso” para drives com essa tecnologia.
Se você quer saber detalhes sobre fragmentação, leia este artigo.
Em média a cada 18 meses os servidores do BABOO e Fórum do BABOO são substituídos por modelos mais novos e potentes. Os servidores atuais são idênticos e têm excelente configuração: cada um tem dois processadores Intel Xeon (24 cores no total), 96 GB RAM de memória DDR3 e 1 TB em SSD (5 discos de 200 GB SSD em RAID 5), além de conexão de 1 Gbps.
Essa configuração permite que não haja nenhum gargalo de hardware no site e no fórum.
Desfragmentação de SSD no BABOO
A minha maior curiosidade foi relativa ao SSD, pois embora eu utilize esse tipo de drive no meu desktop principal desde 2010, eu ainda não tinha vivência dessa tecnologia em um servidor com alto volume de acessos.
O Fórum do BABOO sempre faz os discos rígidos do servidor “suarem” pois ele é acessado simultaneamente por milhares internautas (logados ou não), além de hospedar mais de um milhão de arquivos entre arquivos do fórum, imagens, backup, logs, etc.
A partição NTFS não é particularmente otimizada para evitar fragmentação de arquivos, e historicamente o servidor do fórum sempre teve alto índice de fragmentação. Por este motivo eu sempre usei um bom desfragmentador para servidores (o excelente PerfectDisk Server da Raxco) que eu abordo em detalhes aqui que faz desfragmentação automática e em tempo real das partições.
Sem o uso dele ou de qualquer outro desfragmentador de disco, em alguns dias haveriam dezenas de milhares de arquivos fragmentados – e a performance diminuiria mesmo que o servidor tenha muita memória RAM.
Desfragmentar SSD: sim ou não?
O problema nos novos servidores é que tecnicamente os SSD não devem ser desfragmentados, pois além de ser desnecessário, ele diminui a sua vida útil. Será que a falta de desfragmentação afetaria o servidor, ou a fragmentação não será perceptível, conforme todos os textos técnicos defendem?
Quando o novo servidor entrou no ar, o Fórum do BABOO estava rapidíssimo e TUDO era instantâneo. Entretanto, aos poucos o tempo de carregamento das páginas do fórum começou a aumentar.
A combinação de 24 cores e muita memória RAM não era párea para a fragmentação real do SSD, e com isso eu habilitei a opção de SSD Defrag do PerfectDisk.
Essa opção não otimiza os arquivos existentes, mas sim o espaço livre – e isso beneficia o TRIM (comando utilizado pelos SSD para definir quais blocos podem ser utilizados e quais não), sempre resultando em um pequeno ganho de performance.
SSD: queda de performance
Mesmo com o SSD Defrag habilitado, o carregamento das páginas continuava com pequenas travadas, e isso começou a me incomodar muito.
Ao fazer uma análise rápida da principal partição do fórum, o PerfectDisk me mostrou que haviam cerca de 480 mil fragmentos ali! Embora esse tipo de análise não seja muito real, pois a maneira do SSD salvar os dados é diferente do que acontece nos discos rígidos tradicionais, o bom senso me dizia que era hora de resolver isso.
Então, a título de teste (e tendo certeza que o backup local e remoto de todas as partições estavam atualizados), eu configurei o PerfectDisk para realizar uma desfragmentação de SSD da mesma maneira que ele faz nos discos rígidos.
Por mais que ele me alertasse que aquilo não era recomendado, eu continuei.
Após quase uma hora desfragmentando 600 GB, o número de fragmentos diminuiu de quase meio milhão para apenas sete(!) e o fórum estava novamente rapidíssimo!
Até mesmo tarefas internas realizadas no servidor ficaram muito mais rápidas. E aí ficou a grande dúvida: a questão do SSD não precisar ser desfragmentado é conversa-fiada, ou será que essa desfragmentação de SSD otimizou as tarefas de gerenciamento de blocos da controladora RAID?
Contatando quem realmente entende sobre fragmentação
Para analisar essa questão mais a fundo, eu contatei a Raxco. Eles me colocaram em contato com Greg Hayes, o principal especialista em otimização e sistemas de arquivos da empresa e que coincidentemente foi MVP na área de File System de 2003 a 2007.
Ele explicou que teoricamente a fragmentação de SSD não afeta tanto a performance da maneira como em um disco rígido, mas isso muda em casos extremos de fragmentação: quando há MUITA fragmentação em um drive SSD, o trabalho da controladora é muito maior – e isso pode afetar a performance do drive.
Lição do dia
Desfragmentação de SSD: embora um drive SSD acesse os dados em pentelhésimos de segundos (e com isso a fragmentação torna-se irrelevante em 99% dos casos), uma fragmentação extrema pode criar um gargalo na controladora do SSD – e esse gargalo afeta diretamente a performance do servidor independentemente do modelo do drive SSD e controladora, da quantidade de memória RAM ou cache em uso.
Para evitar *completamente* a fragmentação de um SDD, a solução é habilitar a opção de desfragmentação em tempo real (StealthPatrol no PerfectDisk), embora isso comprometerá (muito) pouco a vida útil dele.
Como o modelo de SSD utilizado nos servidores tem MTBF (tempo médio entre falha) de “apenas” 2 milhões de horas (228 anos), o ganho de performance compensa a diminuição da vida útil dele.
Bem, fica aí a dica: se você utiliza SSD e ele está muito fragmentado, você PODE desfragmentá-lo sem problemas, desde que compreenda que fazer isso constantemente fará com que ele dure um pouco menos.
Esse artigo não tem patrocínio da PerfectDisk e usamos ele nos nossos servidores pois ele é bom mesmo! Eu escrevi pois acho importante esclarecer o mito da fragmentação em drives SSD.
Vídeos sobre Desfragmentação
Depois desse artigo eu publiquei vários outros artigos e vídeos relacionados desfragmentação de SSD:
– Fragmentação de arquivos: o que é, porquê ela é ruim, e como resolver
– PerfectDisk Server A FUNDO
– Otimização de SSD Parte 1: Desfragmentação, Vida Útil e Backup
– Otimização de SSD Parte 2: Dicas que NÃO FUNCIONAM para otimizar SSD
– Otimização de SSD Parte 3: Dicas que FUNCIONAM para otimizar SSD
– Aula 09 do curso Windows RÁPIDO e SEGURO: Defraggler