Por que o espaço em disco de esvaziamento acelera os computadores?
Ao aprender mais sobre computadores e como eles funcionam, você ocasionalmente se deparará com algo que parece não fazer sentido. Com isso em mente, o esvaziamento do espaço em disco realmente acelera os computadores? A postagem de perguntas e respostas do SuperUser de hoje tem a resposta para a pergunta de um leitor intrigado.
A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade..
Imagem cedida por nchenga (Flickr).
A questão
O leitor SuperUser Remi.b quer saber porque o esvaziamento de espaço em disco parece acelerar um computador:
Eu 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. Eu também entendo porque aumentar a RAM acelera um computador.
O que eu não entendo é por que a limpeza do espaço em disco parece acelerar o computador. Isso realmente acelera o computador? Se sim, por que isso acontece?
Isso tem algo a ver com a busca de espaço de memória para salvar coisas ou mover coisas para criar um espaço contínuo suficiente para salvar algo? Quanto espaço vazio devo deixar livre em um disco rígido?
Por que o espaço em disco esvaziado parece acelerar um computador??
A resposta
O colaborador do SuperUser, Jason C, tem a resposta para nós:
"Por que o esvaziamento de espaço em disco acelera os computadores?"
Não, pelo menos não por conta própria. Este é um mito muito comum. A razão pela qual é um mito comum é porque encher o seu disco rígido, muitas vezes acontece ao mesmo tempo que outras coisas que tradicionalmente poderiam abrandar o seu computador (UMA). O desempenho do SSD tende a se degradar à medida que eles são preenchidos, 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:
1. Fragmentação de arquivos. Fragmentação de arquivos é um problema (B), mas falta de espaço livre, enquanto definitivamente um dos muitos fatores que contribuem, não é a única causa disso. Alguns pontos importantes aqui:
- As chances de um arquivo ser fragmentado são não relacionado à 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 (ou seja, “buracos” de espaço livre), que a quantidade de espaço livre acontece de colocar um limite superior em. Eles também estão relacionados a como o sistema de arquivos lida com a alocação de arquivos (mais abaixo). Considerar: Uma unidade que está 95 por cento cheia 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á cinco por cento cheia, mas com dados distribuídos uniformemente sobre a unidade tem uma chance muito alta de fragmentação.
- Tenha em mente que a fragmentação de arquivos afeta somente o desempenho quando os arquivos fragmentados estão sendo acessados. Considerar: Você tem uma unidade agradável e desfragmentada que ainda tem muitos "buracos" gratuitos. Um cenário comum. Tudo está correndo bem. Eventualmente, no entanto, você chega a um ponto em que não há mais blocos grandes de espaço livre restante. Você baixar um filme enorme, o arquivo acaba sendo severamente fragmentado. Isso não irá desacelerar seu computador. Todos os seus arquivos de aplicativos e os que anteriormente estavam bem não serão fragmentados de repente. Isso pode fazer com que o filme demore mais para carregar (embora as taxas de bits típicas do filme sejam muito baixas se comparadas às taxas de leitura do disco rígido que provavelmente não serão notadas) e pode afetar o desempenho de E / S enquanto o filme está sendo carregado, mas diferente disso, nada muda.
- Embora a fragmentação de arquivos seja certamente um problema, muitas vezes os efeitos são atenuados pelo armazenamento em cache e pelo armazenamento em cache do sistema operacional e do hardware. As estratégias de leitura atrasada, leitura antecipada, como o pré-buscador no Windows etc., ajudam a reduzir os efeitos da fragmentação. Você geralmente não na realidade experimentar um impacto significativo até que a fragmentação se torne grave (eu até me atreveria a dizer que, desde que o arquivo de swap não esteja fragmentado, você provavelmente nunca notará).
2. 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 mais e mais conteúdo indexável em seu computador (documentos e outros), a indexação pode demorar mais e mais e pode começar a afetar a velocidade percebida de seu computador enquanto ele está sendo executado, tanto em I / O quanto no uso da CPU . Isso não está relacionado ao espaço livre, está relacionado à quantidade de conteúdo indexável que você tem. No entanto, ficar sem espaço livre anda de mãos dadas com o armazenamento de mais conteúdo, portanto, uma conexão falsa é desenhada.
3. Software antivírus (semelhante ao exemplo de indexação de pesquisa). Digamos que você tenha um software antivírus configurado para fazer a varredura em segundo plano da sua unidade. Como você tem mais e mais conteúdo escaneável, a pesquisa leva mais recursos de E / S e CPU, possivelmente interferindo em seu trabalho. Novamente, isso está relacionado à quantidade de conteúdo que você pode escaneá-lo. Mais conteúdo freqüentemente é igual a menos espaço livre, mas a falta de espaço livre não é a causa.
4. Software instalado Digamos que você tenha um monte de software instalado que carrega quando o computador inicializa, diminuindo 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 do disco rígido diminui ao mesmo tempo em que isso acontece, e novamente uma conexão falsa pode ser prontamente feita.
5. Muitos outros exemplos ao longo destas linhas que, quando tomados em conjunto, aparecer para associar estreitamente falta de espaço livre com menor desempenho.
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, a desinstalação de vários aplicativos, a remoção de conteúdo indexado ou varrido etc. às vezes (mas nem sempre; fora do escopo de essa resposta) aumenta o desempenho novamente por motivos não relacionados à quantidade de espaço livre restante. Mas isso também libera naturalmente o espaço no disco rígido. Portanto, novamente, uma aparente (mas falsa) conexão entre “mais espaço livre” e um “computador mais rápido” pode ser feita.
Considerar: Se você tem uma máquina rodando lentamente devido a muitos softwares instalados, etc., clone seu disco rígido (exatamente) em um disco rígido maior e, em seguida, expanda suas partições para ganhar mais espaço livre, a máquina não irá magicamente acelerar. O mesmo software carrega, os mesmos arquivos ainda são fragmentados da mesma maneira, o mesmo indexador de pesquisa ainda é executado, nada muda apesar de ter mais espaço livre.
"Tem algo a ver com a busca de espaço de memória para salvar as coisas?"
Não, não tem. Há duas coisas muito importantes que vale a pena notar aqui:
1. Seu disco rígido não pesquisa ao redor para encontrar lugares para colocar as 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 SO informa e lê o que é pedido. As unidades modernas possuem mecanismos sofisticados de armazenamento em cache e buffer projetados para prever o que o sistema operacional solicitará com base na experiência que obtivemos com o passar do tempo (algumas unidades estão cientes do sistema de arquivos existente), mas essencialmente dirija como apenas um grande tijolo de armazenamento com recursos ocasionais de desempenho de bônus.
2. Seu sistema operacional também não pesquisa lugares para colocar coisas. Não há busca. Muito esforço foi feito para resolver esse problema, pois é essencial para o desempenho do sistema de arquivos. A maneira como os dados são realmente organizados na sua unidade é determinada pelo seu sistema de arquivos. Por exemplo, FAT32 (antigo DOS e Windows PCs), NTFS (ediçõ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 as misteriosas bestas chamadas arquivos. 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 pesquisa por espaço livre seja desnecessária em circunstâncias normais (ou seja, sistemas de arquivos em bom estado de saúde). Exemplos:
- NTFS tem uma tabela de arquivos mestre, que inclui os arquivos especiais $ Bitmap, etc, e abundância de metadados descrevendo a unidade. Essencialmente, ele mantém o controle de onde os próximos blocos livres são para que novos arquivos possam ser gravados diretamente em blocos livres sem ter que escanear a unidade toda vez.
- Outro exemplo: o Ext4 tem o que é chamado de alocador de bitmaps, uma melhoria em relação ao ext2 e ext3 que basicamente ajuda a determinar diretamente onde os blocos livres estão em vez de varrer a lista de blocos livres. 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á-los para reduzir a fragmentação.
- Muitos outros exemplos.
"Ou com mover as coisas ao redor para fazer um espaço longo o suficiente para salvar alguma coisa?"
Não. Isso não acontece, pelo menos não com qualquer sistema de arquivos que conheço. Os arquivos acabam fragmentados.
O processo de "mover as coisas para criar um espaço contíguo longo o suficiente para salvar algo" é chamado desfragmentando. Isso não acontece quando os arquivos são gravados. Isso acontece quando você executa o desfragmentador de disco. Em edições mais recentes do Windows, pelo menos, isso acontece automaticamente em um agendamento, mas nunca é acionado por gravar um arquivo.
Ser capaz de evitar mover coisas assim é a chave para o desempenho do sistema de arquivos, e é por isso que a fragmentação acontece e porque a desfragmentação existe como uma etapa separada.
"Quanto espaço vazio devo deixar livre em um disco rígido?"
Essa é uma pergunta mais difícil de responder (e essa resposta já se transformou em um pequeno livro).
Regras de ouro:
1. Para todos os tipos de unidades:
- Mais importante ainda, deixe espaço livre suficiente para você 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 (acho que o Windows exige 15%, no pior caso). Eles 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 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, convém deixar espaço suficiente para o tamanho máximo do arquivo de página. Ou, se você tiver um laptop colocado no modo de hibernação, precisará de espaço livre suficiente para o arquivo de estado de hibernação. Coisas assim.
2. Específico para SSD:
- Para uma confiabilidade ideal (e, em menor grau, desempenho), os SSDs requerem algum espaço livre, que, sem entrar em muitos detalhes, eles usam para espalhar dados ao redor do disco para evitar que sejam constantemente gravados no mesmo lugar (o que os desgasta) . Esse conceito de deixar espaço livre é chamado de provisionamento excessivo. É 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 reportam ao sistema operacional. Unidades de menor capacidade geralmente exigem que você saia manualmente não particionado espaço, mas para unidades com OP obrigatório, você não precisa deixar nenhum espaço livre. Uma coisa importante a notar aqui é que espaço superprovisionado é muitas vezes tomado apenas do espaço não particionado. Então, se sua partição ocupa toda a sua unidade e você deixa algum espaço livre nela, isso não sempre contagem. Muitas vezes, o excesso de provisionamento manual exige que você reduza sua partição para que seja menor que o tamanho da unidade. Verifique o manual do usuário do seu SSD para detalhes. TRIM, coleta de lixo e outros efeitos também, mas esses estão fora do escopo desta resposta.
Pessoalmente, eu costumo pegar uma unidade maior quando tenho cerca de 20-25% de espaço livre restante. Isso não está relacionado ao desempenho, mas quando chego a esse ponto, espero que provavelmente eu fique sem espaço para os dados em breve e que seja hora de obter uma unidade maior.
Mais importante do que assistir a um espaço livre é garantir que a desfragmentação agendada esteja habilitada, quando apropriado (não em SSDs), para que você nunca chegue ao ponto em que ela se torne terrível o bastante para afetá-lo..
Há uma última coisa que vale a pena mencionar. Uma das outras respostas mencionadas aqui menciona que o modo half-duplex da SATA impede a leitura e a escrita ao mesmo tempo. Embora seja verdade, isso é muito simplificado e não está relacionado aos problemas de desempenho discutidos aqui. O que isso significa, simplesmente, é que os dados não podem ser transferidos em ambas as direções sobre o fio ao mesmo tempo. No entanto, o SATA tem uma especificação bastante complexa envolvendo tamanhos minúsculos de bloco (cerca de 8kB por bloco no fio, eu acho), filas de operação de leitura e gravação, etc., e não impede gravações em buffers acontecendo enquanto leituras estão em andamento, intercaladas operações, etc.
Qualquer bloqueio que ocorra seria devido a competir por recursos físicos, geralmente mitigados por muito cache. O modo duplex do SATA é quase totalmente irrelevante aqui.
(UMA) “Slow down” é um termo amplo. Aqui eu o uso para referir-se a coisas que estão ligadas a E / S (isto é, se o seu computador está ocupado, o conteúdo do disco rígido não tem impacto) ou ligado à CPU e competindo com coisas tangencialmente relacionadas que têm alta Uso da CPU (ou seja, software anti-vírus varrendo toneladas de arquivos).
(B) Os SSDs são afetados pela fragmentação em que as velocidades de acesso sequenciais são geralmente mais rápidas do que o acesso aleatório, apesar de as SSDs não enfrentarem as mesmas limitações de um dispositivo mecânico (mesmo assim, a falta de fragmentação não garante acesso seqüencial devido ao desgaste, etc.). No entanto, em praticamente todos os cenários de uso geral, isso não é um problema. Diferenças de desempenho devido à fragmentação em SSDs são normalmente insignificantes para coisas como carregar aplicativos, inicializar o computador, etc..
(C) Assumindo um sistema de arquivos sano que não esteja fragmentando os arquivos propositadamente.
Certifique-se de ler o resto da discussão animada no SuperUser através do link abaixo!
Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.