Por que esvaziar o espaço em disco acelera os computadores?

Por que esvaziar o espaço em disco acelera os computadores?

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

Não entendo por que limpar o espaço em disco acelera um computador. Não é? Por que isso acontece? Tem a ver com a busca de espaço disponível para guardar coisas? Ou mover coisas para criar um espaço contínuo longo o suficiente para salvar alguma coisa? Quanto espaço vazio no disco rígido devo deixar livre?

Responder1

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

Por que esvaziar o espaço em disco acelera os computadores?

Isso não acontece, pelo menos não por si só. Este é um mito muito comum. A razão pela qual isso é um mito comum é porque encher o disco rígido geralmente acontece ao mesmo tempo que outras coisas que tradicionalmentepoderiadesacelere seu computador. O desempenho do SSD tende adegradar à medida que a unidade enche, mas este é um problema relativamente novo, exclusivo dos SSDs, e não é realmente perceptível para usuários casuais. Geralmente, pouco espaço livre em disco é apenas umarenque vermelho.

Por exemplo, coisas como:

  • Fragmentação de arquivos. Fragmentação de arquivoéum problema †† , mas falta de espaço livre, embora definitivamente um dosmuitosfatores contribuintes, não éa únicacausa disso. Alguns pontos-chave aqui:

    • As chances de um arquivo ser fragmentado sãonãorelacionado à 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, "buracos" de espaço livre), que é a quantidade de espaço livreacontece de colocar um limite superior em. Eles também estão relacionados à forma como o sistema de arquivos lida com a alocação de arquivos (mais abaixo).Considerar:Uma unidade que está 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 arquivosafeta apenas o desempenho quando os arquivos fragmentados estão sendo acessados.Considerar:Você tem uma unidade bonita e desfragmentada que ainda contém muitos "buracos" livres. Um cenário comum. Tudo está funcionando perfeitamente. Eventualmente, porém, você chega a um ponto em que não há mais blocos grandes de espaço livre restantes. Você baixa um filme enorme, o arquivo acaba ficando gravemente fragmentado.Isso não deixará seu computador lento.Todos os arquivos do seu aplicativo que estavam funcionando anteriormente não ficarão fragmentados repentinamente. Isto pode fazer com quefilmedemora mais para carregar (embora as taxas de bits típicas de filmes sejam tão baixas em comparação com as taxas de leitura do disco rígido que provavelmente serão imperceptíveis) e isso pode afetar o desempenho vinculado à E/S enquanto ofilmeestá carregando, mas fora isso, nada muda.

    • Embora a fragmentação de arquivos seja certamente um problema, muitas vezes os efeitos são atenuados pelo buffer e cache no nível do sistema operacional e do hardware. Gravações atrasadas, leitura antecipada, estratégias como apré-buscadorno Windows, etc., todos ajudam a reduzir os efeitos da fragmentação. Você geralmente nãona verdadeexperimente um impacto significativo até que a fragmentação se torne grave (atrevo-me a dizer que, desde que o seu arquivo de troca não esteja fragmentado, você provavelmente nunca 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 lida com isso normalmente. À medida que você salva mais e mais conteúdo indexável em seu computador (documentos e outros), a indexação pode demorar cada vez mais e pode começar a afetar a velocidade percebida do seu computador enquanto ele está em execução, tanto em E/S quanto no uso da CPU. . Isso não está relacionado ao espaço livre, mas à 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, daí uma falsa conexão ser estabelecida.

  • 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 cada vez mais conteúdo escaneá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 muitos softwares instalados que carregam quando o computador inicializa, retardando assim o tempo de inicialização. Essa lentidão acontece porque muitos softwares estão sendo carregados. 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 que isso acontece e, novamente, uma conexão falsa pode ser feita prontamente.

  • Muitos outros exemplos nesse sentido que, quando considerados em conjunto,aparecerassociar intimamente a falta de espaço livre com desempenho inferior.

O que foi dito acima ilustra outra razão pela qual este é 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 responder)aumentadesempenho novamente por motivos não relacionados à quantidade de espaço livre restante. Mas isso também libera espaço no disco rígido naturalmente. Portanto, novamente, uma conexão aparente (mas falsa) entre “mais espaço livre” e “computador mais rápido” pode ser feita.

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

Tem a ver com a procura de um espaço de memória onde guardar as coisas?

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

  1. Seu disco rígido não procura 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 o seu sistema operacional manda e lê tudo o que é solicitado. As unidades modernas têm mecanismos sofisticados de cache e 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 até cientes do sistema de arquivos que está nelas), mas essencialmente, pense em sua unidade é apenas um grande bloco de armazenamento com recursos de desempenho bônus ocasionais.

  2. Seu sistema operacional também não procura locais para colocar as coisas. Não há "busca".Muito esforço foi feito para resolver esse problema, pois ele é fundamental para o desempenho do sistema de arquivos. A forma como os dados são realmente organizados na sua unidade é determinada pelo seusistema de arquivo. Por exemplo, FAT32 (antigos PCs DOS e Windows), NTFS (mais tarde Windows), HFS+ (Mac), ext4 (alguns Linux) e muitos outros. Até mesmo o conceito de “arquivo” e “diretório” são meramente produtos de sistemas de arquivos típicos – os discos rígidos não conhecem as bestas misteriosas chamadas “arquivos”. Os detalhes estão fora do escopo desta resposta. Mas, essencialmente, todos os sistemas de arquivos comuns têm maneiras de rastrear onde está o espaço disponível em uma unidade, de modo que a busca por espaço livre é, em circunstâncias normais (isto é, sistemas de arquivos em boas condições), desnecessária. Exemplos:

    • NTFStem umTabela de arquivos mestre, que inclui os arquivos especiais $Bitmap, etc., e muitos metadados que descrevem a unidade. Essencialmente, ele monitora onde estão os próximos blocos livres, para que novos arquivos possam ser gravados diretamente nos blocos livres, sem a necessidade de verificar a unidade todas as vezes.

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

    • Muitos outros exemplos.

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

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

O processo de “mover coisas para criar um espaço contíguo suficientemente longo para salvar alguma coisa” é chamadodesfragmentando. 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 de acordo com uma programação, mas nunca é acionado pela gravação de um arquivo.

Ser capaz deevitarmover as coisas dessa maneira é fundamental 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?

Esta é 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 ainda, deixe espaço livre suficiente paravocê use seu computador de forma eficaz. Se você está ficando sem espaço para trabalhar, você vai querer uma unidade maior.
    • Muitas ferramentas de desfragmentação de disco requerem uma quantidade mínima de espaço livre (acho que aquela com Windows requer 15% no pior caso) para funcionar. Elas usam esse espaço livre para armazenar temporariamente arquivos fragmentados enquanto outras coisas são reorganizadas.
    • Deixe espaço para outras funções do sistema operacional. Por exemplo, se sua máquina não tiver muita RAM física e você tiver memória virtual habilitada 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 colocado no modo de hibernação, precisará de espaço livre suficiente para o arquivo do estado de hibernação. Coisas assim.
  • Específico de SSD:

    • Para obter confiabilidade ideal (e, em menor grau, desempenho), os SSDs requerem algum espaço livre, que, sem entrar em muitos detalhes, eles usam para espalhar os dados pela unidade para evitar a gravação constante no mesmo local (o que os desgasta). Este conceito de deixar espaço livre é chamadosobre-aprovisionamento. É importante,mas em muitos SSDs já existe espaço superprovisionado obrigatório. Ou seja, as unidades geralmente têm algumas dezenas de GB a mais do que reportam ao sistema operacional. Unidades de baixo custo geralmente exigem que você saia manualmentenão particionadoespaço, mas para unidades com OP obrigatório,você não precisa deixar nenhum espaço livre. Uma coisa importante a notar aqui é queo espaço superprovisionado geralmente só é retirado do espaço não particionado. Portanto, se a sua partição ocupar toda a unidade e você deixar algum espaço livre nela, isso não significasemprecontar. Muitas vezes, o superprovisionamento manual exige que você reduza sua partição para um tamanho menor que o tamanho da unidade. Verifique o manual do usuário do seu SSD para obter detalhes. TRIM e coleta de lixo também têm efeitos, mas estão fora do escopo desta resposta.

Pessoalmente, costumo pegar uma unidade maior quando tenho cerca de 20 a 25% de espaço livre restante. Isso não está relacionado ao desempenho, apenas quando chegar a esse ponto, espero que em breve ficarei sem espaço para dados e é hora de adquirir uma unidade maior.

Mais importante do que observar o espaço livre é garantir que a desfragmentação programada esteja habilitada quando apropriado (não em SSDs), para que você nunca chegue ao ponto em que isso se torne terrível o suficiente para afetá-lo. Igualmente importante é evitar ajustes equivocados e deixar seu sistema operacional fazer o seu trabalho, por exemplonão desabilite o pré-buscador do Windows(exceto SSDs), etc.


Há uma última coisa que vale a pena mencionar. Uma das outras respostas aqui mencionou que o modo half-duplex do SATA impede a leitura e a gravação ao mesmo tempo. Embora seja verdade, isso é muito simplificado e, em grande parte, não está relacionado às questões de desempenho discutidas aqui. O que isto significa, simplesmente, é que os dados não podem ser transferidos em ambas as direçõessobre o fioao mesmo tempo. No entanto, a SATA tem umespecificação bastante complexaenvolvendo pequenos tamanhos máximos de bloco (cerca de 8kB por bloco no fio, eu acho), filas de operações de leitura e gravação, etc., e não impede que gravações em buffers aconteçam enquanto as leituras estão em andamento, operações intercaladas, etc.

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


"Desacelerar" é um termo amplo. Aqui eu o uso para me referir a coisas que estão vinculadas à E/S (por exemplo, se o seu computador estiver parado processando números, o conteúdo do disco rígido não terá impacto) ou vinculadas à CPU e competindo com coisas tangencialmente relacionadas que têm alto uso da CPU (por exemplo, software antivírus verificando toneladas de arquivos).

†† SSDssãoafetado pela fragmentação, pois as velocidades de acesso sequencial são geralmente mais rápidas que o acesso aleatório, apesar dos SSDs não enfrentarem as mesmas limitações que um dispositivo mecânico (mesmo assim, a falta de fragmentação não garante o acesso sequencial, devido ao nivelamento de desgaste, etc., como diz James Snell notas 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 em SSDs são normalmente insignificantes para coisas como carregar aplicativos, inicializar o computador, etc.

††† Presumindo um sistema de arquivos sensato que não fragmente arquivos propositalmente.

Responder2

Além deExplicação de Nathanial Meekpara 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 do SSD é o mesmo. O tempo de acesso típico do SSD é de 0,1 ms versus um tempo de acesso típico do HDD 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 os dados existentes, um SSD precisa de espaço completamente vazio para gravar dados. Isso é feito por funções chamadas Trim and Garbage Collection, que eliminam os dados marcados como excluídos. A coleta de lixo funciona melhor em combinação com uma certa quantidade de espaço livre no SSD. Geralmente é recomendado 15% a 25% de espaço livre.

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 onde os dados deveriam ser gravados. Isso dobra o tempo de cada operação de gravação e degrada o desempenho geral.

Aqui estáum excelente artigoque explica o funcionamento da Trim and Garbage Collection

Responder3

Em algum lugar dentro de um disco rígido tradicional há uma bandeja de metal giratória onde 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 por último para o interior do disco.

Com isso em mente, há dois efeitos que fazem com que o desempenho do disco diminua à medida que ele fica cheio:Tempos de buscaeVelocidade Rotacional.

Tempos de busca

Para acessar os dados, um disco rígido tradicional deve mover fisicamente um cabeçote de leitura/gravação para a posição correta. Isso leva tempo, chamado de “tempo de busca”. Os fabricantes publicam os tempos de busca de seus discos, e normalmente são apenas alguns milissegundos. Isso pode não parecer muito, mas para um computador é uma eternidade. Se você tiver que ler ou escrever para ummuitode diferentes locais de disco para concluir uma tarefa (o que é comum), esses tempos de busca podem resultar em atraso ou latência perceptível.

Uma unidade que está quase vazia terá a maior parte de seus dados na mesma posição ou perto dela, normalmente na borda externa perto da posição de repouso do cabeçote de leitura/gravação. Isso reduz a necessidade de busca no disco, reduzindo bastante o tempo gasto na busca. Uma unidade que está quase cheia não só precisará procurar no disco com mais frequência e com movimentos de busca maiores/mais longos, mas também poderá ter problemas para manter os dados relacionados no mesmo setor, aumentando ainda mais as buscas no disco. Isso é chamadofragmentadodados.

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

Velocidade Rotacional

Os discos rígidos giram a uma taxa fixa (normalmente 5.400 rpm ou 7.200 rpm para o seu computador e 10.000 rpm ou mesmo 15.000 rpm em um servidor). Também é necessária uma quantidade fixa de espaço 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 do que a parte interna do disco. Isso significa que os bits próximos à borda externa do disco passam pelo cabeçote de leitura em uma taxa mais rápida do que os bits próximos ao centro do disco e, portanto, o cabeçote de leitura/gravação pode ler ou gravar bits mais rápido perto da borda externa do disco do que o interno.

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

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

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

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

Os efeitos também se aplicam a novas unidades. Se todo o resto for igual, uma nova unidade de 1 TB é mais rápida do que uma nova unidade de 200 GB, porque 1 TB armazena bits mais próximos e não preenche as trilhas internas tão rapidamente. No entanto, tentar usar isso 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 controlador de software/disco para limitar um prato de 1 TB a apenas 200 GB de espaço ou venda uma unidade com pratos parcialmente concluídos/defeituosos de uma unidade de 1 TB com muitos setores defeituosos como uma unidade de 200 GB.

Outros fatores

É importante notar aqui que os efeitos acima são bastante pequenos. Os engenheiros de hardware de computador passam muito tempo trabalhando em como minimizar esses problemas, e coisas como buffers de disco rígido, cache Superfetch e outros sistemas funcionam para minimizar o problema. Com umsaudávelsistema com bastante espaço livre, você provavelmente nem notará. Além disso, os SSDs têm características de desempenho completamente diferentes. No entanto, os efeitos existem e o computador fica legitimamente mais lento à medida que a unidade fica cheia. Em umpouco saudávelsistema, onde o espaço em disco é muito baixo, esses efeitos podem criar uma situação de esgotamento do disco, onde o disco está constantemente buscando dados fragmentados, e liberar espaço em disco pode corrigir isso, resultando em melhorias mais dramáticas e perceptíveis.

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

Finalmente, o desempenho do disco éenormeindicador do desempenho geral do PC atualmente... um indicador ainda maior que a velocidade da CPU. Mesmo uma pequena queda no rendimento do disco muitas vezes equivale a uma queda geral percebida no desempenho do PC. Isso é especialmente verdadeiro porque o desempenho do disco rígido não acompanhou as melhorias de CPU e memória; o disco de 7.200 RPM tem sido o padrão de desktop há mais de uma década. Mais do que nunca, aquele disco giratório tradicional é o gargalo do seu computador.

Responder4

Um computador que tenha muito pouco espaço em disco, em um disco rígido mecânico giratório, por um período significativo de tempo, geralmente ficará mais lento à medida que a fragmentação do arquivo aumenta. O aumento da fragmentação significa leituras lentas –muitolento em casos extremos.

Quando o computador estiver nesse estado, liberar espaço em disco não resolverá realmente o problema. Você também precisaria desfragmentar o disco. Antes de um computador estar nesse estado, liberar espaço não irá acelerá-lo; simplesmente reduzirá as chances de a 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.

informação relacionada