2Sep

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

Ao aprender mais sobre computadores e como eles funcionam, você ocasionalmente irá encontrar algo que não parece fazer sentido. Com isso em mente, esvaziar o espaço no disco realmente acelerar os computadores? O super-usuário Q & Uma publicação tem a resposta para uma pergunta do leitor perplexo.

Today's Question &A sessão de atendimento chega a cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento comunitário de sites Q & A.

Captura de tela cortesia do nchenga( Flickr).

A pergunta

Leitor de superutilizador Remi.b quer saber por que o vazamento de espaço em disco parece acelerar um computador:

Tenho assistido a muitos vídeos e agora entendo como os computadores funcionam um pouco melhor. Eu entendo o que é RAM, sobre 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.

O que não entendo é por que limpar o espaço no disco parece acelerar o computador. Isso realmente acelerou um computador? Em caso afirmativo, por que faz isso?

Tem algo a ver com a busca de espaço de memória para salvar coisas ou mover coisas ao redor para criar um espaço contínuo suficientemente longo para salvar algo? Quanto espaço vazio devo deixar livre em um disco rígido?

Por que o esvaziamento do espaço no disco parece acelerar um computador?

A resposta

Contribuinte do SuperUser Jason C tem a resposta para nós:

"Por que esvaziar o espaço no disco acelerar os computadores?"

Não faz, pelo menos, não por conta própria. Este é um mito realmente comum. A razão pela qual é um mito comum é porque o preenchimento de seu disco rígido geralmente acontece ao mesmo tempo que outras coisas que tradicionalmente poderiam diminuir seu computador ( A) .O desempenho do SSD tende a se degradar à medida que eles preenchem, mas esta é uma questão relativamente nova, exclusiva para SSDs, e não é realmente perceptível para usuários casuais. Geralmente, o espaço livre em disco é apenas um arenque vermelho.

Por exemplo, coisas como:

1. File fragmentation. A fragmentação de arquivos é um problema ( B) , mas a falta de espaço livre, enquanto definitivamente um dos fatores contribuintes, não é a única causa disso. Alguns pontos principais aqui:

  • As chances de um arquivo estar fragmentado são e não relacionadas à quantidade de espaço livre deixado na unidade. Eles estão relacionados ao tamanho do maior bloco contíguo de espaço livre na unidade( ou seja, "furos" de espaço livre), que a quantidade de espaço livre passa a colocar um limite superior no .Eles também estão relacionados à forma como o sistema de arquivos lida com a alocação de arquivos( mais abaixo ). Considere: Uma unidade com 95% de cheio com todo o espaço livre em um único bloco contíguo tem zero por cento de chance de fragmentar um novo arquivo ( C) ( e a chance de fragmentar um arquivo anexado é independente do espaço livre).Uma unidade que está com cinco por cento cheia, mas com dados espalhados uniformemente sobre a unidade tem uma chance muito alta de fragmentação.
  • Tenha em mente que a fragmentação do arquivo afeta somente o desempenho quando os arquivos fragmentados estão sendo acessados ​​como . 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, você consegue chegar a um ponto em que não existem mais grandes blocos de espaço livre. Você baixa um filme enorme, o arquivo acaba sendo severamente fragmentado. Isso não irá abrandar o seu computador .Todos os seus arquivos de aplicativos e, por isso, anteriormente bem, não serão fragmentados de repente. Isso pode fazer o filme levar mais tempo para carregar( embora as taxas de bits de filme típicas 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 a E / S enquanto o filme está sendo carregado, masalém disso, nada muda.
  • Embora a fragmentação de arquivos seja certamente um problema, muitas vezes os efeitos são atenuados pelo sistema operacional e pelo armazenamento em cache e no cache de hardware. Atrasado escreve, leitura antecipada, estratégias como o prefetcher no Windows, etc., ajudam a reduzir os efeitos da fragmentação. Em geral, não é realmente o impacto significativo de até a fragmentação se tornar severa( eu até me atreveria a dizer que, enquanto seu arquivo de troca não estiver fragmentado, você provavelmente nunca notará).

2. O indexação da pesquisa é outro exemplo. Diga que você tenha indexação automática ativada e um sistema operacional que não lide com isso graciosamente.À medida que você economiza mais e mais conteúdo indexável no seu computador( documentos e tal), a indexação pode demorar mais e mais e pode começar a ter efeito na velocidade percebida do seu computador enquanto ele está sendo executado, 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, a falta de espaço livre vai de mãos dadas com o armazenamento de mais conteúdo e, portanto, uma conexão falsa é desenhada.

3. Software anti-vírus( semelhante ao exemplo de indexação de pesquisa).Diga que você tenha o software anti-vírus configurado para fazer a varredura em segundo plano de sua unidade. Como você tem conteúdo cada vez mais explorável, a pesquisa leva mais recursos de E / S e CPU, possivelmente interferindo no seu trabalho. Mais uma vez, isso está relacionado com a quantidade de conteúdo que você tem. Mais conteúdo geralmente equivale a menos espaço livre, mas a falta de espaço livre não é a causa.

4. Software instalado. Diga que você tenha muitos softwares instalados que são carregados quando o computador arrumar, diminuindo assim os tempos de inicialização. Isso diminui, porque muitos softwares estão sendo carregados. No entanto, o software instalado ocupa espaço no disco rígido. Portanto, o espaço livre do disco rígido diminui ao mesmo tempo que isso acontece, e novamente uma conexão falsa pode ser pronta.

5. Muitos outros exemplos ao longo dessas linhas que, quando tomados em conjunto, aparecem para associar intimamente a falta de espaço livre com menor desempenho.

O acima ilustra outro motivo de que este é um mito tão comum: enquanto a falta de espaço livre não é uma causa direta de desaceleração, desinstalando várias aplicações, removendo conteúdo indexado ou digitalizado, etc. às vezes( mas nem sempre, fora do escopodesta resposta) aumenta o desempenho novamente por razões não relacionadas à quantidade de espaço livre restante. Mas isso, naturalmente, liberta espaço no disco rígido. Portanto, novamente, uma conexão aparente( mas falsa) entre "mais espaço livre" e um "computador mais rápido" pode ser feita.

Considere: Se você tiver uma máquina funcionando lentamente devido a muitos softwares instalados, etc., clone seu disco rígido( exatamente) em um disco rígido maior, então expanda suas partições para ganhar mais espaço livre, a máquina não acelerará magicamenteacima. As mesmas cargas de software, os mesmos arquivos ainda são fragmentados da mesma maneira, o mesmo indexador de pesquisa ainda funciona, nada muda apesar de ter mais espaço livre.

"Tem algo a ver com a procura de espaço de memória para salvar coisas?"

No. Não. Há duas coisas muito importantes a serem observadas aqui:

1. Seu disco rígido não procura em busca de lugares para colocar as coisas. Seu disco rígido é estúpido. Não é nada.É um grande bloco de armazenamento direcionado que coloca cegamente coisas onde seu sistema operacional diz e lê o que é solicitado. As unidades modernas têm mecanismos de armazenamento em cache e armazenamento em buffer desenvolvidos em torno de prever o que o sistema operacional pedirá, com base na experiência adquirida ao longo do tempo( algumas unidades estão conscientes do sistema de arquivos que está nelas), mas, essencialmente, pense em suaconduzir apenas um grande tijolo de armazenamento com recursos de desempenho de bônus ocasionais.

2. Seu sistema operacional também não procura lugares para colocar coisas. Não há pesquisa. Muito esforço foi solucionado neste problema, pois é fundamental para o desempenho do sistema. A forma como os dados são organizados na sua unidade é determinada pelo seu sistema de arquivos. Por exemplo, FAT32( antigo DOS e Windows PCs), NTFS( versões posteriores do Windows), HFS +( Mac), ext4( alguns sistemas Linux) e muitos outros. Mesmo o conceito de um "arquivo" e um "diretório" são apenas produtos de sistemas de arquivos típicos - os discos rígidos não sabem nada sobre os animais misteriosos chamados arquivos .Os detalhes estão fora do escopo desta resposta. Mas 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 de espaço livre seja desnecessária, em circunstâncias normais( ou seja, sistemas de arquivos em boa saúde).Exemplos:

  • NTFS possui uma tabela de arquivos mestre, que inclui os arquivos especiais $ Bitmap , etc., e muitos metadados que descrevem a unidade. Essencialmente, ele faz o controle de onde os próximos blocos gratuitos são para que novos arquivos possam ser gravados diretamente em blocos gratuitos sem ter que verificar a unidade sempre.
  • Outro exemplo: o Ext4 tem o chamado alocador de bitmap, uma melhoria em relação a ext2 e ext3 que basicamente o ajuda a determinar diretamente onde os blocos gratuitos são em vez de escanear a lista de blocos livres. O Ext4 também suporta alocação atrasada , ou seja, armazenamento de dados na RAM pelo sistema operacional antes de gravá-lo para a unidade, a fim de tomar melhores decisões sobre onde colocá-lo para reduzir a fragmentação.
  • Muitos outros exemplos.

"Ou com as coisas em movimento para criar um espaço contínuo o bastante suficiente para salvar algo?"

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

O processo de "mover coisas para criar um espaço contíguo suficientemente longo para salvar algo" é chamado desfragmentando .Isso não acontece quando os arquivos são gravados. Isso acontece quando você executa o desfragmentador de disco. Nas edições mais recentes do Windows, pelo menos, isso acontece automaticamente em um cronograma, mas nunca é ativado por escrito um arquivo.

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

"Quanto espaço vazio devo deixar livre em um disco rígido?"

Esta é uma pergunta mais complicada para responder( e essa resposta já se transformou em um pequeno livro).

Regras de uso:

1. Para todos os tipos de unidades:

  • Mais importante, deixe espaço suficiente para para usar 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 exigem uma quantidade mínima de espaço livre( eu acho que o Windows com 15%, o pior caso), para trabalhar. Eles usam esse espaço livre para armazenar arquivos fragmentados temporariamente, pois 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 página de tamanho dinâmico, você deseja deixar espaço suficiente para o tamanho máximo do arquivo de página. Ou se você tiver um laptop que você colocou no modo de hibernação, você precisará de espaço livre suficiente para o arquivo de estado de hibernação. Coisas assim.

2. SSD-specific:

  • Para uma maior confiabilidade( e em menor grau, desempenho), os SSDs exigem algum espaço livre, que, sem entrar em muito detalhe, eles usam para espalhar dados ao redor do disco rígido para evitar constantemente escrever parao mesmo lugar( que os desgasta).Esse conceito de deixar espaço livre é chamado de excesso de provisionamento.É importante, , mas em muitos SSDs, o espaço exagerado exagerado já existe .Ou seja, as unidades geralmente têm mais algumas dezenas de GB do que informam sobre o sistema operacional. As unidades inferiores exigem que você deixe o espaço não particionado, mas para unidades com OP obrigatório, , você não precisa deixar espaço livre .Uma coisa importante a observar aqui é que over-provisioned espaço é muitas vezes apenas tomadas de espaço não particionado .Então, se sua partição ocupar toda sua unidade e você deixa algum espaço livre nela, isso não significa sempre contar. Muitas vezes, o excesso de provisionamento manual exige que você encolhe sua partição para ser menor que o tamanho da unidade. Verifique o manual do usuário do SSD para obter detalhes. TRIM, coleta de lixo, e tem efeitos também, mas esses estão fora do escopo desta resposta.

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

Mais importante do que assistir espaço livre, é garantir que a desfragmentação agendada seja ativada quando apropriado( não em SSDs) para que você nunca chegue ao ponto em que se torna grave o suficiente para afetá-lo.

Existe uma última coisa que vale a pena mencionar. Uma das outras respostas aqui mencionou que o modo half-duplex SATA impede a leitura e a escrita ao mesmo tempo. Embora seja verdade, isso é extremamente simplificado e na maioria das vezes não está relacionado com as questões de desempenho que estão sendo discutidas 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, o SATA possui uma especificação bastante complexa que envolve minúsculos tamanhos máximos de blocos( cerca de 8kB por bloco no fio, penso), lê e escreve filas de operação, etc., e não impede que as gravações de buffers aconteçam enquanto as leituras estão em andamento, intercaladasoperações, etc.

Qualquer bloqueio que ocorra seria devido a competir por recursos físicos, geralmente mitigado por bastante cache. O modo duplex do SATA é quase inteiramente irrelevante aqui.

( A) "Slow down" é um termo amplo. Aqui eu uso isso para referir-me a coisas que estão vinculadas a I / O( ou seja, se o seu computador estiver sentado, segure os números, o conteúdo do disco rígido não tem impacto) ou ligado à CPU e competir com coisas tangencialmente relacionadas que têm altaUso da CPU( ou seja, software anti-vírus digitalizando toneladas de arquivos).

( B) Os SSDs são afetados pela fragmentação, na medida em que as velocidades de acesso seqüenciais geralmente são mais rápidas que o acesso aleatório, apesar de os 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 seqüencial devido ao nivelamento do desgaste,etc.).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 geralmente são insignificantes para coisas como carregar aplicativos, inicializar o computador, etc.

( C) Assumindo um sistema de arquivos sano que não está fragmentando arquivos de propósito.

Certifique-se de ler o resto da discussão animada no SuperUser através do link abaixo!

Tem alguma coisa a adicionar à explicação? Som desligado nos comentários. Deseja ler mais respostas de outros usuários Tech-savvy Stack Exchange? Confira o tópico de discussão completo aqui.