Por que o esvaziamento do espaço em disco acelera os computadores?


191

Estive vendo vários vídeos e agora entendo um pouco melhor como os computadores funcionam. Entendo melhor o que é a RAM, memória volátil e não volátil e o processo de troca. Eu também entendo por que aumentar a RAM acelera um computador.

Não entendo por que a limpeza do espaço em disco acelera o computador. Faz? Por que isso? Isso tem a ver com a procura de espaço disponível para salvar as coisas? Ou movendo as coisas para criar um espaço contínuo o suficiente para salvar alguma coisa? Quanto espaço vazio no disco rígido devo deixar livre?


37
ele realmente não acelera os PCs, apenas reduz as chances de fragmentações de arquivos que tornam os HDDs mais lentos. Este é um dos maiores mitos do PC que todo mundo repete. Para encontrar gargalos no PC, rastreie-o com xperf / WPA.
magicandre1981

9
FWIW isso speeds up the experience of using a PC.
Edthethird

4
@ magicandre1981: Há uma pequena jóia da verdade. Quanto mais coisas em cada pasta, menor o percurso do arquivo, o que afeta qualquer coisa usando um caminho de arquivo, que é ... tudo. Mas isso é minúsculo .
Duck Mooing

4
@MooingDuck Embora seja verdade, isso está relacionado ao número de arquivos em uma pasta, não ao tamanho dos arquivos ou à quantidade de espaço restante na unidade. Esse efeito não está relacionado ao espaço em disco restante. O efeito também é limitado em escopo à própria pasta, não "desacelera" o computador inteiro. Alguns sistemas de arquivos, ext3 / 4, por exemplo, usam árvores de diretório com hash para agilizar as pesquisas (incluindo o acesso a subpastas), limitando ainda mais o escopo do efeito, por exemplo, apenas ao listar o conteúdo de um diretório.
Jason C

4
Quais vídeos você estava assistindo exatamente?
Loko

Respostas:


313

Aqui, escrevi um livro por acidente. Tome um café primeiro.

Por que o esvaziamento do espaço em disco acelera os computadores?

Não, pelo menos não por si só. Este é um mito muito comum. A razão é um mito comum é porque encher o seu disco rígido muitas vezes acontece ao mesmo tempo que outras coisas que tradicionalmente poderia retardar seu computador. O desempenho do SSD tende a diminuir à medida que a unidade é concluída , mas esse é um problema relativamente novo, exclusivo dos SSDs, e não é realmente perceptível para usuários casuais. Geralmente, o baixo espaço livre em disco é apenas um arenque vermelho .

Por exemplo, coisas como:

  • Fragmentação de arquivo. A fragmentação de arquivo é um problema †† , mas a falta de espaço livre, embora seja definitivamente um dos muitos fatores que contribuem, não é a única causa. Alguns pontos-chave aqui:

    • As chances de um arquivo ser fragmentado não estão relacionadas à quantidade de espaço livre restante na unidade. Eles estão relacionados ao tamanho do maior bloco contíguo de espaço livre na unidade (por exemplo, "orifícios" de espaço livre), nos quais a quantidade de espaço livre coloca um limite superior . Eles também estão relacionados à maneira como o sistema de arquivos lida com a alocação de arquivos (mais abaixo). Considere: Uma unidade que esteja 95% cheia com todo o espaço livre em um único bloco contíguo tem 0% de chance de fragmentar um novo arquivo ††† (e a chance de fragmentar um arquivo anexado é independente do espaço livre). Uma unidade que está 5% cheia, mas com dados distribuídos uniformemente pela unidade, tem uma chance muito alta de fragmentação.

    • Lembre-se de que a fragmentação de arquivo afeta apenas o desempenho quando os arquivos fragmentados estão sendo acessados . Considere: você tem uma unidade agradável e desfragmentada que ainda possui muitos "buracos" gratuitos. Um cenário comum. Tudo está funcionando sem problemas. Eventualmente, porém, você chega a um ponto em que não há mais grandes blocos de espaço livre restante. Você baixa um filme enorme, o arquivo acaba sendo severamente fragmentado. Isso não diminuirá a velocidade do seu computador. Todos os arquivos do aplicativo e outros que estavam bem antes não serão fragmentados de repente. Isso pode tornar o filmedemora mais para carregar (embora as taxas de bits típicas do filme sejam tão baixas em comparação com as taxas de leitura do disco rígido que provavelmente serão imperceptíveis) e pode afetar o desempenho vinculado à E / S enquanto o filme estiver sendo carregado, mas, além disso, nada muda.

    • Embora a fragmentação de arquivos seja certamente um problema, muitas vezes os efeitos são atenuados pelo buffer e pelo cache do sistema operacional e do hardware. Gravações atrasadas, leitura antecipada, estratégias como o pré - buscador no Windows etc. ajudam a reduzir os efeitos da fragmentação. Você geralmente não realmente experimentar impacto significativo até que a fragmentação torna-se grave (eu até arrisco a dizer que, enquanto o seu arquivo de troca não é fragmentado, você provavelmente nunca irá notar).

  • A indexação de pesquisa é outro exemplo. Digamos que você tenha a indexação automática ativada e um sistema operacional que não lide com isso normalmente. À medida que você salva cada vez mais conteúdo indexável em seu computador (documentos e outros), a indexação pode demorar mais e mais e começar a afetar a velocidade percebida do computador enquanto está em execução, tanto no uso de E / S quanto na CPU . Isso não está relacionado ao espaço livre, está relacionado à quantidade de conteúdo indexável que você possui. No entanto, ficar sem espaço livre anda de mãos dadas com o armazenamento de mais conteúdo; portanto, é feita uma conexão falsa.

  • Software antivírus. Semelhante ao exemplo de indexação de pesquisa. Digamos que você tenha um software antivírus configurado para fazer a verificação em segundo plano da sua unidade. À medida que você tem mais e mais conteúdo digitalizável, a pesquisa consome mais recursos de E / S e CPU, possivelmente interferindo no seu trabalho. Novamente, isso está relacionado à quantidade de conteúdo digitalizável que você possui. Mais conteúdo geralmente equivale a menos espaço livre, mas a falta de espaço livre não é a causa.

  • Software instalado. Digamos que você tenha um monte de software instalado que carrega quando o computador é inicializado, diminuindo o tempo de inicialização. Essa lentidão acontece porque muito software está sendo carregado. No entanto, o software instalado ocupa espaço no disco rígido. Portanto, o espaço livre no disco rígido diminui ao mesmo tempo em que isso acontece e, novamente, uma conexão falsa pode ser feita facilmente.

  • Muitos outros exemplos ao longo dessas linhas que, quando considerados em conjunto, parecem associar estreitamente a falta de espaço livre ao desempenho inferior.

O exemplo acima ilustra outro motivo pelo qual esse é um mito tão comum: embora a falta de espaço livre não seja uma causa direta de lentidão, desinstalação de vários aplicativos, remoção de conteúdo indexado ou verificado, etc. às vezes (mas nem sempre; fora do escopo deste resposta) aumenta o desempenho novamente por motivos não relacionados à quantidade de espaço livre restante. Mas isso também libera espaço no disco rígido. Portanto, novamente, uma conexão aparente (mas falsa) entre "mais espaço livre" e "computador mais rápido" pode ser feita.

Considere: Se você possui uma máquina funcionando lentamente devido a muitos softwares instalados, etc., e clona exatamente o seu disco rígido em um disco rígido maior, expande suas partições para ganhar mais espaço livre, a máquina não irá acelerar magicamente acima. O mesmo software é carregado, os mesmos arquivos ainda estão fragmentados da mesma maneira, o mesmo indexador de pesquisa ainda é executado, nada muda apesar de ter mais espaço livre.

Isso tem a ver com a busca de um espaço de memória onde salvar coisas?

Não, não tem. Há duas coisas muito importantes que vale a pena notar aqui:

  1. O seu disco rígido não procura por lugares para colocar coisas. Seu disco rígido é estúpido. Não é nada. É um grande bloco de armazenamento endereçado que coloca cegamente as coisas onde seu sistema operacional manda e lê o que é solicitado. As unidades modernas têm mecanismos sofisticados de armazenamento em cache e armazenamento em buffer projetados para prever o que o sistema operacional solicitará com base na experiência que adquirimos ao longo do tempo (algumas unidades estão cientes do sistema de arquivos nelas), mas essencialmente, pense em sua unidade como apenas um grande tijolo estúpido de armazenamento com recursos ocasionais de desempenho de bônus.

  2. Seu sistema operacional também não procura lugares para colocar coisas. Não há "busca". Muito esforço foi feito para solucionar esse problema, pois é fundamental para o desempenho do sistema de arquivos. A maneira como os dados são realmente organizados em sua unidade é determinada pelo seu sistema de arquivos. Por exemplo, FAT32 (antigos PCs DOS e Windows), NTFS (Windows posterior), HFS + (Mac), ext4 (alguns Linux) e muitos outros. Até o conceito de um "arquivo" e um "diretório" são meramente produtos de sistemas de arquivos típicos - os discos rígidos desconhecem as bestas misteriosas chamadas "arquivos". Os detalhes estão fora do escopo desta resposta. Porém, essencialmente, todos os sistemas de arquivos comuns têm maneiras de rastrear onde o espaço disponível está em uma unidade, de modo que uma busca por espaço livre seja, em circunstâncias normais (isto é, sistemas de arquivos com boa saúde), desnecessária. Exemplos:

    • O NTFS possui uma tabela de arquivos mestre , que inclui os arquivos especiais $Bitmap, etc., e muitos metadados que descrevem a unidade. Essencialmente, ele controla onde estão os próximos blocos livres, para que novos arquivos possam ser gravados diretamente em blocos livres, sem a necessidade de escanear a unidade todas as vezes.

    • Outro exemplo, ext4 tem o que é chamado de "alocador de bitmap" , uma melhoria em relação a ext2 e ext3 que basicamente ajuda a determinar diretamente onde estão os blocos livres, em vez de varrer a lista de blocos livres. O Ext4 também suporta "alocação atrasada", ou seja, buffer de dados na RAM pelo sistema operacional antes de gravá-los na unidade, a fim de tomar melhores decisões sobre onde colocá-lo para reduzir a fragmentação.

    • Muitos outros exemplos.

ou movendo as coisas para criar um espaço contínuo o suficiente para salvar alguma coisa?

Não. Isso não acontece, pelo menos não com qualquer sistema de arquivos que eu conheça. Os arquivos acabam fragmentados.

O processo de "movimentar as coisas para criar um espaço contíguo por tempo suficiente para salvar alguma coisa" é chamado de desfragmentação . Isso não acontece quando os arquivos são gravados. Isso acontece quando você executa o desfragmentador de disco. No Windows mais recente, pelo menos, isso acontece automaticamente em uma programação, mas nunca é acionado ao gravar um arquivo.

Ser capaz de evitar mover coisas assim é essencial para o desempenho do sistema de arquivos e é por isso que a fragmentação acontece e a desfragmentação existe como uma etapa separada.

Quanto espaço vazio no disco rígido devo deixar livre?

Essa é uma pergunta mais complicada de responder, e essa resposta já se transformou em um pequeno livro.

Regras de ouro:

  • Para todos os tipos de unidades:

    • Mais importante, deixe espaço livre suficiente para você usar seu computador com eficiência . Se você estiver ficando sem espaço para trabalhar, precisará de uma unidade maior.
    • Muitas ferramentas de desfragmentação de disco requerem uma quantidade mínima de espaço livre (acho que a do Windows requer 15% do pior caso) para trabalhar. Eles usam esse espaço livre para armazenar temporariamente arquivos fragmentados, pois outras coisas são reorganizadas.
    • Deixe espaço para outras funções do sistema operacional. Por exemplo, se a sua máquina não tiver muita RAM física e você tiver a memória virtual ativada com um arquivo de paginação de tamanho dinâmico, deixe espaço suficiente para o tamanho máximo do arquivo de paginação. Ou, se você tiver um laptop que você coloca no modo de hibernação, precisará de espaço livre suficiente para o arquivo de estado de hibernação. Coisas assim.
  • Específico para SSD:

    • Para otimizar a confiabilidade (e, em menor grau, o desempenho), os SSDs requerem algum espaço livre, que, sem entrar em muitos detalhes, é usado para espalhar dados ao redor da unidade, para evitar a gravação constante no mesmo local (o que os desgasta). Esse conceito de deixar espaço livre é chamado de provisionamento em excesso . É importante, mas em muitos SSDs, o espaço com excesso de provisionamento obrigatório já existe . Ou seja, as unidades geralmente têm algumas dezenas de GB a mais do que informam ao sistema operacional. As unidades de extremidade inferior geralmente exigem que você deixe espaço não particionado manualmente , mas para unidades com OP obrigatório, você não precisa deixar espaço livre . Uma coisa importante a se notar aqui é queo espaço com excesso de provisionamento geralmente é obtido apenas de espaço não particionado . Portanto, se sua partição ocupa toda a sua unidade e você deixa algum espaço livre nela, isso nem sempre conta. Muitas vezes, o provisionamento excessivo manual exige que você reduza sua partição para que seja menor que o tamanho da unidade. Consulte o manual do usuário do seu SSD para obter detalhes. O TRIM e a coleta de lixo e outros também têm efeitos, mas estão fora do escopo desta resposta.

Pessoalmente, geralmente pego uma unidade maior quando tenho cerca de 20 a 25% de espaço livre restante. Isso não está relacionado ao desempenho, é só que, quando chegar a esse ponto, espero que provavelmente esteja ficando sem espaço para os dados em breve e que esteja na hora de obter uma unidade maior.

Mais importante do que observar o espaço livre, é garantir que a desfragmentação programada seja ativada onde for apropriado (não nos SSDs), para que você nunca chegue ao ponto em que isso se torna terrível o suficiente para afetá-lo. Igualmente importante é evitar ajustes equivocados e deixar o sistema operacional funcionar, por exemplo , não desative o pré-buscador do Windows ( exceto os SSDs ), etc.


Há uma última coisa que vale a pena mencionar. Uma das respostas aqui mencionadas menciona que o modo half-duplex da SATA impede a leitura e a gravação ao mesmo tempo. Embora seja verdade, isso é muito simplificado e não tem relação com os problemas de desempenho discutidos aqui. O que isso significa, simplesmente, é que os dados não podem ser transferidos nas duas direções no fio ao mesmo tempo. No entanto, a SATA tem uma especificação bastante complexa que envolve pequenos tamanhos máximos de blocos (cerca de 8kB por bloco na conexão, eu acho), filas de operações de leitura e gravação, etc., e não impede gravações em buffers que ocorrem enquanto as leituras estão em andamento, intercaladas operações etc.

Qualquer bloqueio que ocorra seria devido à competição por recursos físicos, geralmente atenuados por bastante cache. O modo duplex do SATA é quase totalmente irrelevante aqui.


"Desacelerar" é um termo amplo. Aqui, utilizo-o para me referir a coisas que são vinculadas à E / S (por exemplo, se o seu computador estiver sentado com números limitados, o conteúdo do disco rígido não tem impacto) ou vinculado à CPU e competindo com coisas tangencialmente relacionadas que alto uso da CPU (por exemplo, software antivírus que verifica toneladas de arquivos).

†† Os SSDs são afetados pela fragmentação, pois as velocidades de acesso seqüencial geralmente são mais rápidas que o acesso aleatório, apesar de os SSDs não enfrentarem as mesmas limitações de um dispositivo mecânico (mesmo assim, a falta de fragmentação não garante o acesso sequencial, devido ao nivelamento do desgaste, etc. , como James Snell observa nos comentários). No entanto, em praticamente todos os cenários de uso geral, isso não é problema. As diferenças de desempenho devido à fragmentação nos SSDs são geralmente insignificantes para carregar aplicativos, inicializar o computador etc.

††† Supondo um sistema de arquivos sadio que não esteja fragmentando arquivos de propósito.


Resposta muito abrangente, obrigado. Também obrigado pelo lembrete de tomar um café, foi muito apreciado.
Hashim

22

Além da explicação de Nathanial Meek para HDDs, há um cenário diferente para SSDs.

Os SSDs não são sensíveis a dados dispersos porque o tempo de acesso a qualquer local no SSD é o mesmo. O tempo de acesso típico do SSD é de 0,1 ms contra um tempo de acesso típico do HD de 10 a 15 ms. É, no entanto, sensível aos dados que já estão gravados no SSD

Ao contrário dos HDDs tradicionais que podem sobrescrever dados existentes, um SSD precisa de espaço completamente vazio para gravar dados. Isso é feito por funções chamadas Trim e Garbage Collection, que limpam os dados que foram marcados como excluídos. A Coleta de Lixo funciona melhor em combinação com uma certa quantidade de espaço livre no SSD. Geralmente, 15% a 25% do espaço livre é recomendado.

Se a coleta de lixo não puder concluir seu trabalho a tempo, cada operação de gravação será precedida por uma limpeza do espaço no qual os dados devem ser gravados. Isso dobra o tempo de cada operação de gravação e diminui o desempenho geral.

Aqui está um excelente artigo que explica o funcionamento do Trim and Garbage Collection


Observe que os SSDs PODEM gravar em células parcialmente preenchidas, lendo os dados parciais e gravando com mais gravações, mas tendem a fazer isso apenas quando for inevitável. É claro que isso também é bastante lento e geralmente indica que a unidade está tão fragmentada que é preciso muito para que ela escreva rapidamente novamente.
fofo

Isso também dependerá do controlador. E já que existem tantas variações, eu não queria entrar nesse nível de detalhe.
WHS

Os 15 a 25% dos quais você fala são chamados de "provisionamento em excesso". Algumas unidades já possuem espaço obrigatório alocado para isso (por exemplo, o 1TB EVO 840 tem 9% de reserva e não é relatado ao sistema operacional como gratuito), para aqueles que você não precisa deixar espaço livre. Acredito que, em alguns casos, o espaço com excesso de provisionamento também deva ser particionado, e simplesmente deixar espaço livre no seu sistema de arquivos não diminui, você realmente precisa deixar espaço não alocado.
Jason C

O excesso de provisionamento é outra coisa. Essas são nands em stand-by para substituir as com defeito. Os 15-25% são necessários para liberar blocos (páginas) e para nivelar o desgaste. Você pode querer ler aqui para obter detalhes ==> thessdreview.com/daily-news/latest-buzz/…
whs:

@whs Não é, e o artigo ao qual você vincula não implica que seja. O espaço com excesso de provisionamento (consulte também as fontes citadas nessa seção ou Google) é o conjunto de blocos gratuitos, os blocos desse conjunto são usados ​​para coleta de lixo / gravação rápida, nivelamento de desgaste e substituição de células defeituosas. Quanto à substituição de células defeituosas, está tudo no mesmo pool; quando estiver cheio de células defeituosas, você começará a ver os erros consistentes. Veja também o slide 12 desta apresentação da LSI ; vale a pena analisar tudo, aborda o assunto diretamente.
Jason C

12

Em algum lugar dentro de um disco rígido tradicional, há uma bandeja giratória de metal, na qual os bits e bytes individuais são realmente codificados. À medida que os dados são adicionados ao prato, o controlador de disco os armazena primeiro na parte externa do disco. À medida que novos dados são adicionados, o espaço é usado, movendo-se para o interior do disco por último.

Com isso em mente, existem dois efeitos que fazem com que o desempenho do disco diminua à medida que o disco se enche: Seek Times e Rotational Velocity .

Seek Times

Para acessar dados, um disco rígido tradicional deve mover fisicamente uma cabeça de leitura / gravação para a posição correta. Isso leva tempo, chamado de "tempo de busca". Os fabricantes publicam os tempos de procura de seus discos, e normalmente são apenas alguns milissegundos. Pode não parecer muito, mas para um computador é uma eternidade. Se você tem que ler ou escrever para um monte de locais diferentes de disco para completar uma tarefa (que é comum), os tempos de busca para pode adicionar até atraso perceptível ou latência.

Uma unidade que está quase vazia terá a maioria dos dados na mesma posição, ou quase na mesma posição, normalmente na borda externa, perto da posição de descanso da cabeça de leitura / gravação. Isso reduz a necessidade de procurar no disco, reduzindo bastante o tempo gasto na busca. Uma unidade que está quase cheia não precisará apenas procurar no disco com mais frequência e com movimentos de busca maiores / maiores, mas pode ter problemas para manter os dados relacionados no mesmo setor, aumentando ainda mais as buscas no disco. Isso é chamado de dados fragmentados .

A liberação de espaço em disco pode melhorar o tempo de busca, permitindo que o serviço de desfragmentação não apenas limpe mais rapidamente os arquivos fragmentados, mas também mova os arquivos para a parte externa do disco, para que o tempo médio de busca seja menor.

Velocidade rotacional

Os discos rígidos giram a uma taxa fixa (normalmente 5400rpm ou 7200rpm para o seu computador e 10000rpm ou até 15000 rpm em um servidor). Também é necessário um espaço fixo na unidade (mais ou menos) para armazenar um único bit. Para um disco girando a uma taxa de rotação fixa, a parte externa do disco terá uma taxa linear mais rápida que a parte interna do disco. Isso significa que os bits próximos à borda externa do disco passam pela cabeça de leitura a uma taxa mais rápida do que os bits próximos ao centro do disco e, portanto, a cabeça de leitura / gravação pode ler ou gravar bits mais rapidamente perto da borda externa do disco que o interior.

Uma unidade quase vazia gastará a maior parte do tempo acessando bits próximos à borda externa mais rápida do disco. Uma unidade quase cheia gasta mais tempo acessando bits próximos à parte interna mais lenta do disco.

Novamente, o esvaziamento do espaço em disco pode tornar o computador mais rápido, permitindo que o serviço de desfragmentação mova dados para a parte externa do disco, onde as leituras e gravações são mais rápidas.

Às vezes, um disco se move muito rápido para a cabeça de leitura, e esse efeito é reduzido porque os setores próximos à borda externa são escalonados ... gravados fora de ordem para que a cabeça de leitura possa acompanhar. Mas no geral isso vale.

Esses dois efeitos se resumem a um controlador de disco que agrupa os dados na parte mais rápida do disco primeiro e não usa as partes mais lentas do disco até que seja necessário. À medida que o disco se enche, mais e mais tempo é gasto na parte mais lenta do disco.

Os efeitos também se aplicam a novas unidades. Tudo o resto é igual, uma nova unidade de 1 TB é mais rápida do que uma nova unidade de 200 GB, porque o 1 TB está armazenando bits mais próximos e não será preenchido rapidamente nas faixas internas. No entanto, tentar usá-lo para informar decisões de compra raramente é útil, pois os fabricantes podem usar vários pratos para atingir o tamanho de 1 TB, pratos menores para limitar um sistema de 1 TB a 200 GB, restrições de software / controlador de disco para limitar um prato de 1 TB a apenas 200 GB de espaço ou venda uma unidade com travas parcialmente concluídas / com falha de uma unidade de 1 TB com muitos setores defeituosos como uma unidade de 200 GB.

Outros fatores

Vale a pena notar aqui que os efeitos acima são relativamente pequenos. Os engenheiros de hardware de computador gastam muito tempo trabalhando em como minimizar esses problemas, e coisas como buffers de disco rígido, cache do Superfetch e outros sistemas trabalham para minimizar o problema. Em um sistema saudável , com muito espaço livre, você provavelmente nem perceberá. Além disso, os SSDs têm características de desempenho completamente diferentes. No entanto, os efeitos existem e um computador fica legitimamente mais lento à medida que a unidade é cheia. Em um sistema não saudável , em que o espaço em disco é muito baixo, esses efeitos podem criar uma situação de debulha de disco, na qual o disco está constantemente buscando informações fragmentadas e liberar espaço em disco pode corrigir isso, resultando em melhorias mais dramáticas e visíveis .

Além disso, adicionar dados ao disco significa que certas outras operações, como indexação ou varreduras AV e processos de desfragmentação, estão apenas realizando mais trabalhos em segundo plano, mesmo que estejam na mesma velocidade ou quase na mesma velocidade de antes.

Finalmente, o desempenho do disco é um grande indicador do desempenho geral do PC atualmente ... um indicador ainda maior que a velocidade da CPU. Mesmo uma pequena queda na taxa de transferência do disco muitas vezes equivale a uma queda geral real percebida no desempenho do PC. Isso é especialmente verdadeiro porque o desempenho do disco rígido não acompanha o ritmo das melhorias de CPU e memória; o disco de 7200 RPM é o padrão de desktop há mais de uma década. Mais do que nunca, esse disco giratório tradicional é o gargalo do seu computador.


11
O aumento do tempo de busca não é resultado de pouco espaço livre, é resultado da organização dos dados. A liberação de espaço em disco não diminuirá o tempo de busca se seus dados já estiverem em toda a unidade. Da mesma forma, ficar sem espaço em disco não aumentará repentinamente o tempo de busca de dados não relacionados que já estavam bem organizados. Mais importante, tenha muito cuidado em associar qualquer um deles a "um computador lento". Por exemplo, você não vai navegar na Web mais rapidamente, apenas porque o executável do seu navegador não é fragmentado e fica do lado de fora de uma unidade mecânica, e seus MP3s ainda tocam sem problemas, mesmo na pior das hipóteses.
Jason C

2
@JasonC Cada um desses pontos é verdadeiro isoladamente, mas, como parte de todo o sistema, pode resultar em desacelerações reais. Um exemplo é esta afirmação: " Freeing disk space won't decrease seek times if your data is already all over the drive." Eu não pode contestar que, por si só, mas eu posso apontar o serviço de desfragmentação pode agora passar esses dados para a frente do carro, e agora as coisas vão melhorar os tempos de busca. Outros pontos do seu comentário têm contadores semelhantes: ficar sem espaço em disco não aumenta a procura de dados bem organizados, mas torna menos provável que os dados permaneçam organizados.
Joel Coehoorn

11
@ JasonC No entanto, adicionei algumas linhas à minha resposta com base no seu comentário, para abordar mais diretamente a questão do título.
Joel Coehoorn

Claro; mas meus pontos principais são: 1) desacelerar é uma conseqüência de outra coisa , mesmo que o baixo espaço livre possa ser um dos muitos fatores; 2) você precisa ter muito cuidado com esse tópico; muito rapidamente. Se um usuário casual perceber que o computador está lento, na realidade é altamente incomum que, digamos, a fragmentação (por exemplo) seja a causa real. Mas então eles leem um monte de coisas na internet, instalam o ccleaner, 50 desfragmentadores de disco, fazem um monte de ajustes ruins no registro, etc. Precisa atender às massas aqui; o mais sábio não precisa de nossas respostas.
Jason C

Esta resposta sugere uma ação curta (limitando artificialmente o tamanho do HD para manter os dados nas regiões externas mais rápidas) e alguns problemas em potencial. Também gosto, pois não nega que, na maioria dos casos, para a maioria dos usuários, uma unidade fica mais fragmentada à medida que fica mais cheia. Embora seja interessante notar que o espaço livre não é o problema real , é inútil ignorar a experiência geral do usuário ao lidar com uma pergunta geral da experiência do usuário.
Smithers

6

Todas as outras respostas estão tecnicamente corretas - no entanto, sempre achei que este exemplo simples explica melhor.

Classificar as coisas é realmente fácil se você tiver muito espaço ... mas difícil se você não tiver espaço ... os computadores também precisam desse espaço !

Este clássico " quebra-cabeça 15 " é complicado / demorado, porque você só tem 1 quadrado livre para embaralhar os ladrilhos para obtê-los na ordem correta de 1 a 15.

difícil 15 quebra-cabeça

No entanto, se o espaço fosse muito maior, você poderia resolver esse quebra-cabeça em menos de 10 segundos.

easy 15 puzzle

Para quem já brincou com esse quebra-cabeça ... entender a analogia parece vir naturalmente. ;-)


2
Isso não é análogo a nenhum comportamento do sistema de arquivos. Parece um pouco com o processo geral de desfragmentação, embora a desfragmentação, em relação a essa analogia do quebra-cabeça, permita remover números do quadro e recolocá-los em qualquer lugar que você desejar.
Jason C

2
Além do comentário de Jason acima, quero ressaltar o óbvio: essa resposta está relacionada à classificação (desfragmentação), mas não explica por que acessar um bloco aleatório específico (por exemplo, o bloco "3") seria mais rápido no segundo caso do que no primeiro caso.
um CVn

Porque você não está acessando apenas "3". Você está acessando "1-15". Embora eu admita que isso não esteja claro no exemplo, aceitei como entendido. Pode valer a pena observar especificamente algo como "esse quebra-cabeça é análogo a um único arquivo fragmentado". Ótima resposta, torna as coisas mentalmente acessíveis!
Smithers

11
Para esclarecer: O principal problema com a analogia aqui é que, no quebra-cabeça real, você só pode mover peças para espaços vazios adjacentes. Ou seja, no pequeno exemplo, apenas 6 ou 13 poderiam ser movidos para o espaço vazio. É isso que torna o quebra-cabeça desafiador; é o ponto do jogo de peças. Ao desfragmentar um disco rígido, no entanto, você pode mover, por exemplo, 4 para o espaço vazio, 1 para o local correto e assim por diante, muito fácil de resolver, em exatamente tantos movimentos quanto no caso com muito espaço . Portanto, a analogia realmente falha, uma vez que o cerne do quebra-cabeça não se aplica: nenhum sistema de arquivos funciona dessa maneira.
Jason C

'Porque você não está acessando apenas "3". Você está acessando "1-15" '- isso é um absurdo. A resposta não explica por que acessar um bloco aleatório específico seria mais rápido no segundo caso do que no primeiro caso, porque a resposta está completamente errada. Não apenas a desfragmentação é limitada do jeito que o quebra-cabeça é, mas a desfragmentação "complicada / demorada" não afeta o desempenho do sistema.
Jim Balter

5

Um computador que possui muito pouco espaço em disco, em um disco rígido mecânico giratório, por um período significativo de tempo, geralmente fica mais lento à medida que a fragmentação do arquivo aumenta. Maior fragmentação significa leituras lentas - muito lentas em casos extremos.

Quando um computador estiver nesse estado, liberar espaço em disco não solucionará o problema. Você também precisa desfragmentar o disco. Antes que um computador esteja nesse estado, liberar o espaço não o acelerará; simplesmente reduzirá as chances de fragmentação se tornar um problema.

Isso se aplica apenas a computadores com discos rígidos mecânicos giratórios, porque a fragmentação tem um efeito insignificante na velocidade de leitura dos SSDs.


Uma resposta boa, limpa e simples que também lide com a questão principal.
Smithers

4

Os discos flash podem definitivamente ficar mais lentos quando estão cheios ou fragmentados, embora os mecanismos de desaceleração sejam diferentes dos que ocorreriam com um disco rígido físico. Um chip de memória flash típico será dividido em algum número de blocos de apagamento, cada um dos quais consiste em um grande número (centenas, senão milhares) de páginas de gravação e suportará três operações principais:

  1. Leia uma página em flash.
  2. Escreva em uma página flash anteriormente em branco.
  3. Apague todas as páginas flash em um bloco.

Embora, em teoria, seja possível que cada gravação em uma unidade flash leia todas as páginas de um bloco, altere uma no buffer, apague o bloco e depois grave o buffer no dispositivo flash, essa abordagem seria extremamente lento; também seria provável que causasse perda de dados se a energia fosse perdida entre o momento em que a exclusão foi iniciada e a gravação posterior foi concluída. Além disso, partes do disco frequentemente gravadas se desgastam extremamente rapidamente. Se os primeiros 128 setores do FAT fossem armazenados em um bloco flash, por exemplo, a unidade ficaria inoperante após o número total de gravações em todos esses setores atingir cerca de 100.000, o que não é muito, especialmente considerando que 128 setores realizaria cerca de 16.384 entradas FAT.

Como a abordagem acima funcionaria horrivelmente, o drive fará com que ela identifique alguma página em branco, grave os dados lá e registre de alguma forma o fato de que o setor lógico em questão está armazenado nesse local. Enquanto houver páginas em branco suficientes disponíveis, esta operação poderá prosseguir rapidamente. Se as páginas em branco forem escassas, no entanto, a unidade poderá precisar encontrar blocos que contenham relativamente poucas páginas "ativas", mover quaisquer páginas ativas nesses blocos para algumas das restantes páginas em branco e marcar as cópias antigas como " morto"; feito isso, a unidade poderá apagar blocos que contêm apenas páginas "inativas".

Se uma unidade estiver apenas pela metade, certamente haverá pelo menos um bloco com pelo menos metade das páginas ativas (e provavelmente haverá alguns blocos que contenham poucas ou nenhuma). Se cada bloco contiver 256 páginas e o bloco menos cheio contiver 64 páginas ativas (um caso moderadamente ruim), para cada 192 gravações solicitadas no setor, a unidade precisará executar 64 cópias adicionais do setor e apagar um bloco (portanto, o custo médio gravação de cada setor seria de cerca de 1,34 página gravada e 0,005 apagamento de bloco). Mesmo na pior das hipóteses, cada 128 gravações do setor exigiriam 128 cópias adicionais do setor e uma exclusão de bloco (custo médio por gravação de gravações de 2 páginas e apagamentos de 0,01 blocos)

Se uma unidade estiver 99% cheia e os blocos menos cheios tiverem 248/256 páginas ativas, a cada 8 gravações de setor exigirá 248 gravações de página adicionais e uma exclusão de bloco, gerando um custo por gravação de 32 páginas gravadas e 0,125 bloco apaga - uma desaceleração muito grave.

Dependendo da quantidade de armazenamento "extra" que uma unidade possui, pode não permitir que as coisas fiquem tão ruins. No entanto, mesmo no ponto em que uma unidade está 75% cheia, o desempenho do pior caso pode ser mais do que o dobro do desempenho do pior caso, quando está 50% cheio.


3

Você praticamente acertou em cheio. Você pode pensar em um disco rígido SATA como um meio de comunicação half duplex (ou seja, ele só pode aceitar ou transmitir dados de cada vez. Não os dois.), Portanto, quando a unidade é mantida por um longo período procurando um local livre para gravar para, ele não pode ler nenhum dado para você. Como regra geral, você não deve carregar suas unidades com mais de 80% da capacidade por esse motivo. Quanto mais cheio, maior a probabilidade de fragmentar arquivos, o que faz com que a unidade se amarre durante as solicitações de leitura (bloqueando, assim, as solicitações de gravação).

Você pode fazer várias coisas para ajudar com esses problemas:

  • Reduza a quantidade de dados que você armazenou e desfragmente regularmente sua unidade.
  • Alterne para o armazenamento baseado em flash.
  • Mantenha os dados em massa armazenados em uma unidade separada do seu sistema operacional.
  • E assim por diante...

11
Ao usar o flash, a unidade pode ler ou gravar (mais uma vez, não as duas) quase instantaneamente (9ms é um tempo de busca bastante padrão em um HDD, onde os SSDs normalmente têm um "tempo de busca" no domínio de pico e nano segundos) para qualquer localização no disco. en.wikipedia.org/wiki/…
Nathanial Meek

7
Poing contínuo 2: É para isso que serve o $Bitmaparquivo no NTFS, ou o alocador de bitmap no ext4. Ou seja, esta resposta está espalhando algumas desinformações graves. 3. Há muitas opções de leitura e gravação em buffer e cache que renderizam grande parte desse debate. Essa resposta descreve um pouco os efeitos da fragmentação e, mesmo assim, limitada a sistemas de arquivos mais antigos, certamente não é um espaço livre preciso. Liberar espaço em disco não acelera o computador.
Jason C

4
@ JasonC, você deve transformar seus comentários em uma resposta.
22915 Celos

6
Isso não acontece : "portanto, quando a unidade é mantida por um longo período procurando um local gratuito para gravar, ela não pode ler nenhum dado para você" - simplesmente não. Não é assim que os sistemas de arquivos funcionam. Edite sua resposta para parar de espalhar informações erradas.
RomanSt

2
@NathanialMeek Você está misturando um pouco as camadas. :) O modo half-duplex da SATA significa que ele só pode transmitir dados no fio em uma direção. Leituras e gravações de nível superior são feitas em pequenos blocos (chamados de FIS), nas filas de operações especificadas pela SATA. Eles podem ser assíncronos, e leituras e gravações rápidas podem ser feitas no cache interno e direto e diretamente na memória do sistema via DMA. Os controladores SATA também podem reordenar comandos para otimizar a eficiência. Ponto importante: a linha não é mantida ocupada enquanto as operações físicas são concluídas, e o modo half-duplex da SATA não tem o efeito que você imagina.
Jason C

3

Seguindo a abordagem curta e agradável, minha resposta simplificada (estritamente restrita à sua principal confusão) é:

Contanto que seu

  1. O SO possui espaço suficiente (para os piores cenários) para cumprir suas funções como paginação / troca / etc.
  2. Outros softwares também têm espaço suficiente para suas respectivas necessidades.
  3. O disco rígido está desfragmentado.

Então você não pode dizer a diferença no desempenho de um disco vazio de 80% versus 30% de disco vazio e não deve se preocupar com mais nada além de armazenar mais e mais dados novos.

Qualquer outra coisa que precise de mais armazenamento levará a desempenhos ruins, pois agora pode haver uma falta de espaço disponível.

Claro que a limpeza do disco através de uma ferramenta é boa como:

  1. Os arquivos temporários devem ser limpos regularmente para ganhar espaço em disco valioso.
  2. Arquivos de log antigos não passam de desperdício de espaço.
  3. As sobras do software instalado / desinstalado são muito desagradáveis.
  4. Os cookies devem ser limpos se você valoriza sua privacidade online.
  5. Atalhos inválidos, etc.

Todos esses (e muitos outros) motivos levam ao desempenho inferior, pois todos confundem o sistema operacional ao encontrar o conjunto correto de bits para trabalhar.


Um resumo decente, mas não tão certo sobre a seção "MAS". Em particular: 3) Geralmente não tem impacto perceptível no desempenho, apesar dos surtos comuns 4) Os cookies não são inerentemente problemáticos e, independentemente da opinião, a privacidade não está relacionada ao desempenho ou ao espaço no disco rígido, 5) Atalhos quebrados são feios, mas geralmente inconsequente de outra forma. Nada disso "confunde" qualquer sistema operacional comum. Tenha muito cuidado com as "dicas" e "ajustes" que você segue. Desconfie também de ferramentas de limpeza desnecessárias, em particular os limpadores de registro geralmente correm o risco de prejudicar o benefício zero.
Jason C

2

Um efeito nas unidades rotativas que eu não vi mencionado: a velocidade de acesso e a velocidade de transferência de dados são diferentes em diferentes partes do disco.

Um disco gira em velocidade fixa. As faixas na parte externa de um disco são mais longas e, portanto, podem conter mais dados por faixa do que as faixas no interior. Se a sua unidade conseguir ler 100 MB / s das faixas mais externas, a velocidade nas faixas mais internas será menor que 50 MB / s.

Ao mesmo tempo, há menos faixas entre 1 GB de dados nas faixas externas do disco do que entre 1 GB de dados nas faixas mais internas. Portanto, em média, para dados armazenados no exterior, será necessário menos movimento da cabeça do que para dados nas faixas mais internas.

O sistema operacional tentará usar as faixas mais externas, se possível. Claro que não é possível se o disco estiver cheio. A exclusão de dados disponibilizará espaço onde a velocidade de transferência for maior e agilizará as coisas. Pelo mesmo motivo, você deve comprar discos rígidos giratórios maiores que o necessário, se quiser velocidade (desde que seja acessível), porque você acabará usando apenas as partes mais rápidas da unidade.


Adicionando: en.wikipedia.org/wiki/Zone_bit_recording , que aborda isso com alguns detalhes. Vale ressaltar: os dados existentes não serão movidos. Isso pode afetar o armazenamento de novos dados (dependendo da localização na unidade, não diretamente no espaço livre), mas não "desacelera" os arquivos existentes que foram acessados ​​com prazer antes de gravações internas. Fwiw, a unidade mais barata de 1TB 7200RPM de 3,5 "que encontrei na Amazon tem uma taxa de leitura média de 144MB / s comparada pelo usuário; mesmo considerando as diferenças nas faixas interna e externa, isso pode não ser um gargalo durante o uso casual.
Jason C

O desempenho de E / S do JasonJC em termos de taxa de transferência seqüencial quase nunca é uma preocupação na prática; mesmo uma unidade lenta de 4900 rpm será rápida o suficiente para quase qualquer usuário individual. O desempenho de E / S em termos de operações de leitura / gravação por segundo será o que mata o desempenho na maioria dos casos; pergunte ao administrador de sistemas favorito local sobre IOPS de armazenamento rotacional em sistemas multiusuário algum tempo, se você quiser. Essa é a grande razão pela qual praticamente ninguém está implantando armazenamento rotacional para sistemas multiusuário atualmente; você nunca pode abordar o IOPS dos SSDs.
um CVn
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.