O espaço no disco rígido afeta o desempenho?

3

Eu vi uma apresentação anos atrás que dizia que os discos rígidos tinham o melhor desempenho quando eram < 50% cheio e que, para servidores ocupados, você deseja manter suas unidades < 80% usado. O raciocínio era que as faixas são escritas de dentro para fora e que o acesso, especialmente o acesso aleatório, era mais rápido para as faixas internas do que para as externas. A latência rotacional foi menor.

Por outro lado, com o cache de hoje, e às vezes lido em produtos como o SQL Server, uma faixa externa mais longa, sem rastreamento de trilha para rastrear, pode estar negando fatores.

Isso é verdade? Existe uma razão para manter o espaço livre em um sistema de disco rígido moderno? É diferente para o Windows do que o * Nix?

    
por Steve Jones 01.11.2010 / 17:01

2 respostas

8

Na minha experiência, preocupar-se com a faixa externa versus a pista interna não vale mais o esforço. A diferença no desempenho é muito pequena, quando comparado a outras coisas que afetam o desempenho (RAID, armazenamento em cache, fragmentação do sistema de arquivos, etc.).

No entanto, para responder à sua pergunta diretamente, definitivamente ainda há uma razão para manter uma quantidade decente de espaço livre em um disco rígido moderno (especialmente discos rotacionais (não-SSD)), fragmentação de arquivos e tempo de busca. Quando há uma boa quantidade de espaço livre, os arquivos podem ser gravados sequencialmente, permitindo que eles sejam lidos sem múltiplas buscas. Isso permite que um arquivo seja recuperado muito mais rapidamente do que se uma cabeça de disco tivesse que procurar todo o resto para pegar pequenos trechos de um arquivo.

Este artigo / postagem de blog é mais direcionado à fragmentação de arquivos do que ao desempenho de disco, mas oferece uma das melhores explicações que encontrei para a fragmentação de arquivos e por que o espaço livre disponível a afeta: Por que o Linux não precisa ser desfragmentado?

Quanto mais um disco for preenchido, mais arquivos (especialmente arquivos grandes) ficarão fragmentados e mais lentos para serem lidos e acessados. Essa também é a razão pela qual os sistemas de arquivos Linux reservam uma porcentagem de espaço (geralmente 5%) que está disponível apenas para o usuário root. Esse espaço reservado é muito útil para emergências (portanto, um usuário não pode preencher um disco completamente e causar problemas), mas destina-se principalmente a reduzir a fragmentação de disco à medida que o disco é preenchido. Ao lidar com arquivos muito grandes, como é comum em bancos de dados, o problema de fragmentação pode ser reduzido pré-alocando seus arquivos de dados (supondo que o banco de dados (ou outro aplicativo) o suporte).

Nestes dias de discos muito grandes e relativamente baratos, raramente há uma justificativa válida para permitir que um sistema de arquivos alcance a capacidade. Isso é ainda mais verdadeiro em situações em que a performance é importante.

    
por 01.11.2010 / 17:21
3

Concordo com o Sr. Cashell (e o votei), mas gostaria de acrescentar dois outros fatores.

Primeiro, dependendo do seu sistema operacional, o sistema vai querer ter algum espaço livre para swap e outros arquivos temporários. O Linux, é claro, tem um volume de permuta dedicado, mas o Windows, OS X e Netware querem usar o volume do sistema para seu armazenamento temporário. Manter pelo menos um gigabyte a 10% (e até 20%, se você conseguir gerenciá-lo) gratuitamente o tempo todo no volume do sistema é uma boa prática.

Segundo, a regra para servidores é agora e sempre será que você combate o desempenho lento do disco com mais RAM. Os Agendadores de SO estão ficando cada vez mais sofisticados e manterão as leituras na RAM até que ocorra um momento conveniente para gravar no disco. Alguns aplicativos, no interesse da integridade dos dados, também gravarão arquivos de "reversão" temporários em disco que serão eventualmente mesclados com o conjunto de dados mestre. Quanto mais RAM você tiver, menos leituras terão que vir do disco (já que os arquivos acessados com frequência geralmente serão armazenados em cache na RAM) e quanto mais o SO puder ocultar as gravações lentas.

    
por 01.11.2010 / 23:13