Questão Por que o esvaziamento de espaço em disco acelera os computadores?


Eu tenho visto um monte de vídeos e agora entendo um pouco melhor como os computadores funcionam. Compreendo melhor o que é RAM, memória volátil e não volátil e o processo de troca. Eu também entendo porque aumentar a RAM acelera o computador.

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


188


origem


ele realmente não acelera os PCs, apenas reduz as chances de fragmentação de arquivos que tornam os HDDs mais lentos. Este é um dos maiores mitos do PC que todos repetem. Para encontrar os bootgrades no PC, rastreie-o com xperf / WPA. - magicandre1981
FWIW isso speeds up the experience of using a PC. - edthethird
@ magicandre1981: Existe uma minúsculo gema da verdade. Quanto mais coisas em cada pasta, mais lenta é a passagem de arquivos, o que impacta qualquer coisa usando um caminho de arquivo, que é ... tudo. Mas isso é minúsculo. - Mooing Duck
@MooingDuck Embora verdadeiro, 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 para a pasta em si, não vai "desacelerar" todo o computador. Alguns sistemas de arquivos, ext3 / 4 por exemplo, usam árvores de diretórios hashed fazer pesquisas (incluindo o acesso à subpasta) rapidamente, limitando assim o âmbito do efeito ainda mais, por ex. apenas quando listando conteúdo de um diretório. - Jason C
Quais vídeos você assistiu exatamente? - Loko


Respostas:


Aqui escrevi um livro por acaso. Tome um café primeiro.

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 poderia desacelere seu computador. O desempenho do SSD tende a degradar à medida que a unidade é preenchida, mas este é um problema relativamente novo, exclusivo para SSDs, e não é realmente perceptível para usuários casuais. Geralmente, o baixo espaço livre em disco é apenas arenque vermelho.

Por exemplo, coisas como:

  • Fragmentação de arquivos. Fragmentação de arquivos é um problema††, mas a falta de espaço livre, enquanto definitivamente um dos muitos fatores contribuintes, não é o único 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 (por exemplo, "furos" 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% 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 com 5% de capacidade, 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ê baixa um filme enorme, o arquivo acaba sendo severamente fragmentado. Isso não irá desacelerar o 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 filme demoram mais para carregar (embora as taxas de bits típicas do filme sejam tão baixas comparadas às taxas de leitura do disco rígido que provavelmente serão imperceptíveis), e isso pode afetar o desempenho de E / S filmeestá carregando, mas além disso, nada muda.

    • Embora a fragmentação de arquivos seja certamente um problema, muitas vezes os efeitos são mitigados pelo armazenamento em cache e pelo armazenamento em cache do sistema operacional e do hardware. Escritas atrasadas, leitura antecipada, estratégias como a prefetcher no Windows, etc., todos ajudam a reduzir os efeitos da fragmentação. Você geralmente não na realidade experimente 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 perceberá).

  • 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 do 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, 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.

  • 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.

  • Software instalado Digamos que você tenha muitos softwares instalados que carregam quando o computador inicializa, diminuindo 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 prontamente feita.

  • Muitos outros exemplos ao longo daquelas linhas que, quando tomadas em conjunto, aparecer para associar estreitamente falta de espaço livre com menor desempenho.

Os exemplos acima ilustram 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 deste responda) aumenta 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.

Considerar: Se você tem uma máquina rodando devagar devido a muitos softwares instalados, etc., e clona exatamente seu disco rígido em um disco rígido maior e expande 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 a ver com a busca de um espaço de memória onde 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 é solicitado. As unidades modernas têm mecanismos sofisticados de armazenamento em 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 cientes do sistema de arquivos que está nelas), mas essencialmente sua unidade como apenas um grande tijolo burro de armazenamento com recursos de desempenho de bônus ocasionais.

  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 forma como os dados são organizados na sua unidade é determinada pelo seu sistema de arquivo. Por exemplo, FAT32 (antigo DOS e Windows PCs), NTFS (posteriormente Windows), HFS + (Mac), ext4 (alguns Linuxes) e muitos outros. Mesmo o conceito de um "arquivo" e um "diretório" são meros produtos de sistemas de arquivos típicos - os discos rígidos não conhecem 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 um Tabela de arquivos mestre, que inclui os arquivos especiais $Bitmap, etc., e muitos metadados descrevendo a unidade. Essencialmente, ele mantém o controle de onde estão os próximos blocos livres, para que novos arquivos possam ser gravados diretamente em blocos livres sem ter que escanear a unidade toda vez.

    • Outro exemplo, ext4 tem 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 varrer a lista de blocos livres. O Ext4 também suporta a "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 coisas em movimento 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 qualquer sistema de arquivos que eu saiba. 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. No Windows mais novo, pelo menos, isso acontece automaticamente em um agendamento, mas nunca é acionado ao gravar um arquivo.

Ser capaz de evitar mover as coisas como se fosse isso é fundamental 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 no disco rígido devo deixar de graça?

Essa é uma pergunta mais difícil 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 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 a que tem o Windows requer 15% do pior caso) para trabalhar. 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 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 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.
  • Específico para SSD:

    • Para uma confiabilidade ideal (e, em menor escala, desempenho), os SSDs requerem algum espaço livre, que, sem entrar em muitos detalhes, eles usam para espalhar dados em torno do disco para evitar que sejam constantemente gravados no mesmo local (que os desgasta). Este conceito de deixar o espaço livre é chamado sobre-aprovisionamento. É 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 inferiores 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 retirado 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 provisionamento excessivo manual exige que você diminua sua partição para ser menor que o tamanho da unidade. Verifique o manual do usuário do seu SSD para detalhes. TRIM e coleta de lixo e tais efeitos também, mas 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 farei falta de espaço para os dados em breve, e é hora de obter uma unidade maior.

Mais importante do que assistir a um espaço livre é garantir que a desfragmentação agendada esteja habilitada onde for apropriado (não em SSDs), de modo que você nunca chegue ao ponto em que se torne terrível o bastante para afetá-lo. Igualmente importante é evitar ajustes equivocados e permitir que seu sistema operacional faça o que ele faz, por exemplo, não desabilite o pré-buscador do Windows (exceto para SSDs), etc.


Há uma última coisa que vale a pena mencionar. Uma das outras respostas mencionadas aqui indica 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, a SATA tem um especificação bastante complexa Envolvendo minúsculos tamanhos de bloco (cerca de 8kB por bloco no fio, eu acho), ler e gravar filas de operação, etc., e não impede que gravações em buffers ocorram enquanto leituras estão em andamento, operações intercaladas, 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.


 "Slow down" é um termo amplo. Aqui eu o uso para se referir a coisas que estão ligadas a E / S (por exemplo, se o 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 alto uso da CPU (por exemplo, software antivírus varre vários arquivos).

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

††† Assumindo um sistema de arquivos sano que não esteja fragmentando os arquivos propositadamente.


310



Resposta muito abrangente, obrigado. Também obrigado pela lembrança de tomar um café, foi muito apreciado. - Hashim


Além de 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 versus um tempo de acesso típico do HDD de 10 a 15 ms. É, no entanto, sensível a dados que já estão escritos no SSD

Ao contrário dos HDDs tradicionais que podem substituir os 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 onde os dados devem ser gravados. Isso dobra o tempo para cada operação de gravação e degrada o desempenho geral.

Aqui está um excelente artigoque explica o funcionamento do Trim e Garbage Collection


22



Observe que os SSDs podem gravar em células parcialmente preenchidas, lendo os dados parciais e gravando de volta com mais texto, mas isso tende a fazer isso apenas quando for inevitável. Isso também é bastante lento, e geralmente indica que a unidade está tão fragmentada que vai demorar muito para que ela volte a escrever rapidamente. - fluffy
Isso também depende do controlador. E como há tantas variações, não queria entrar nesse nível de detalhe. - whs
Os 15-25% dos quais você fala são chamados de "superprovisionamento". Algumas unidades têm espaço obrigatório alocado para isso (por exemplo, o 1TB EVO 840 tem 9% de reserva e não é informado ao sistema operacional como gratuito), para aqueles que você não precisa deixar nenhum espaço livre. Acredito que, em alguns casos, o espaço superprovisionado também não seja particionado, e simplesmente deixar espaço livre em seu sistema de arquivos não o corta, você precisaria realmente deixar espaço não alocado. - Jason C
O excesso de provisionamento é outra coisa. Essas são nands em stand-by para substituir os nands defeituosos. Os 15-25% são necessários para liberar blocos (páginas) e para nivelamento de desgaste. Você pode querer ler aqui para mais detalhes ==> thessdreview.com/daily-news/latest-buzz/… - whs
@whs Não é, e o artigo que você vincula não implica que seja. Espaço superprovisionado (veja também fontes citadas nessa seção, ou Google) é o conjunto de blocos livres, blocos neste conjunto são usados ​​para coleta de lixo / gravações rápidas, nivelamento de desgaste e substituição de células defeituosas. Quanto à substituição de células defeituosas, tudo está no mesmo conjunto; uma vez cheio de células defeituosas, você começa a ver os erros consistentes. Veja também o slide 12 em esta apresentação da LSI; a coisa toda vale a pena passar, aborda o assunto diretamente. - Jason C


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

Com isso em mente, há dois efeitos que reduzem o desempenho do disco à medida que o disco é preenchido: Procure tempos e Velocidade Rotacional.

Procure tempos

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 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 um muito de diferentes locais de disco para concluir uma tarefa (o que é comum), esses tempos de busca podem adicionar atraso ou latência perceptíveis.

Uma unidade 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 repouso da cabeça de leitura / gravação. Isso reduz a necessidade de procurar em todo o disco, reduzindo bastante o tempo gasto na busca. Uma unidade que está quase cheia não só precisará procurar em todo o disco com mais frequência e com movimentos de busca maiores / mais longos, mas pode ter problemas para manter os dados relacionados no mesmo setor, aumentando ainda mais as buscas em disco. Isso é chamado fragmentado dados.

Libertar espaço em disco pode melhorar os tempos 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 fora 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é 15000rpm em um servidor). Também é preciso 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 pela cabeça de leitura a 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 rapidamente perto da borda externa do disco interior.

Uma unidade quase vazia gastará a maior parte do tempo acessando bits perto da borda externa mais rápida do disco. Uma unidade quase cheia gastará mais tempo acessando bits perto da 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 realmente se move rápido demais para o cabeçote de leitura, e esse efeito é reduzido porque setores próximos à borda externa serão escalonados ... escritos fora de ordem para que a cabeça de leitura possa acompanhar. Mas no geral isso vale.

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

Os efeitos também se aplicam a novos drives. Tudo o mais sendo igual, um novo drive de 1TB é mais rápido do que um novo drive de 200GB, porque o 1 TB está armazenando os bits mais próximos e não ocupará as faixas internas tão rapidamente. No entanto, tentar usar isso para informar decisões de compra raramente ajuda, pois os fabricantes podem usar vários pratos para atingir o tamanho de 1TB, bandejas menores para limitar um sistema de 1TB a 200GB, restrições de software / disco para limitar um disco de 1TB a apenas 200GB espaço, ou vender uma unidade com pratos parcialmente concluídos / falhos de uma unidade de 1TB com muitos setores defeituosos como uma unidade de 200GB.

Outros fatores

Vale a pena notar aqui que os efeitos acima são bem pequenos. Engenheiros de hardware de computador gastam muito tempo trabalhando em como minimizar esses problemas, e coisas como buffers de disco rígido, armazenamento em cache Superfetch e outros sistemas trabalham para minimizar o problema. Com um saudável sistema com muito espaço livre, você provavelmente nem notará. Além disso, os SSDs possuem características de desempenho completamente diferentes. No entanto, os efeitos existem e um computador fica legitimamente mais lento à medida que a unidade é preenchida. Em um pouco saudável sistema, onde o espaço em disco é muito baixo, esses efeitos podem criar uma situação de movimentação de disco, em que o disco está constantemente procurando dados fragmentados, e liberar espaço em disco pode corrigir isso, resultando em melhorias mais notáveis ​​e dramáticas.

Além disso, adicionar dados ao disco significa que determinadas outras operações, como processos de indexação ou varredura AV e processos de desfragmentação, Mais trabalhe em segundo plano, mesmo que seja na mesma velocidade que antes.

Finalmente, o desempenho do disco é enorme indicador de 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 acompanhou realmente as melhorias de CPU e memória; o disco de 7200 RPM é o padrão de área de trabalho há mais de uma década. Mais do que nunca, esse disco giratório tradicional é o gargalo no seu computador.


12



O aumento do tempo de busca não é resultado do baixo espaço livre, é resultado da organização dos dados. Liberar espaço em disco não diminuirá o tempo de busca se os dados já estiverem em todo o disco. 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, seja muito cauteloso em associar qualquer um deles a "um computador lento". Por exemplo, você não navegará na Web mais rápido apenas porque o executável do seu navegador não está desfragmentado e na parte externa de uma unidade mecânica, e seus MP3s continuarão sendo reproduzidos sem problemas, mesmo no pior dos casos. - Jason C
@JasonC Cada um desses pontos é verdadeiro isoladamente, mas tomado como parte de todo o sistema pode resultar em desacelerações reais. Um exemplo é essa afirmação: "Freeing disk space won't decrease seek times if your data is already all over the drive."Eu não posso contestar isso por si só, mas posso apontar que o serviço de desfragmentação agora pode mover esses dados para a frente da unidade, e agora essas coisas vai melhorar os tempos de busca. Outros pontos em seu comentário têm contadores semelhantes: ficar sem espaço em disco não aumentará as buscas por dados bem organizados, mas diminui a probabilidade de que os dados permaneçam organizados. - Joel Coehoorn
@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) que desacelerar é uma consequência de algo outro, embora o baixo espaço livre possa ser um dos muitos fatores, e 2) você tenha que ser muito cuidadoso com esse tópico, é um daqueles em que as pessoas se agarram muito rapidamente. Se um usuário casual perceber que seu computador está lento, realidade é altamente incomum, digamos, a fragmentação (por exemplo) ser a causa real. Mas então eles lêem um monte de coisas na internet, instalam o ccleaner, 50 desfragmentadores de disco, fazem um monte de ajustes ruins no registro, etc. Precisam atender às massas aqui; o mais sábio não precisa de nossas respostas. - Jason C
Esta resposta sugere um short-stroking (limitando artificialmente o tamanho do HD para manter os dados nas regiões externas mais rápidas) e alguns problemas potenciais com ele. Eu 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 importante notar que o espaço livre não é o real problema, é inútil ignorar a experiência geral do usuário ao lidar com uma questão geral de experiência do usuário. - Smithers


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

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

Este clássico "15 quebra-cabeça"é complicado / demorado porque você tem apenas 1 quadrado livre para embaralhar as peças para colocá-las na ordem correta de 1-15.

hard 15 puzzle

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 qualquer um que tenha jogado este quebra-cabeças ... entender a analogia parece vir naturalmente. ;-)


6



Isso não é análogo a qualquer comportamento do sistema de arquivos. isto um pouco assemelha-se ao processo geral de desfragmentação, eu acho, embora defrag, em relação a esta analogia de quebra-cabeças, permite remover os números da placa e substituí-los em qualquer lugar que você quiser como resolvê-lo. - Jason C
Além do comentário de Jason acima, quero ressaltar o óbvio: esta resposta está relacionada classificação (desfragmentando), mas não explica por que acessando um bloco aleatório específico (digamos, o bloco "3") seria mais rápido no segundo caso do que no primeiro caso. - Michael Kjörling
Porque você não está acessando apenas "3". Você está acessando "1-15". Embora admita que não está claro no exemplo, entendi 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
Para esclarecer: A principal questão com a analogia aqui é que, no quebra-cabeça real, você só pode mover as 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 é o que torna o quebra-cabeça desafiador; é o ponto do jogo da telha. Ao desfragmentar um disco rígido, você pode mover-se, e. 4 para o espaço vazio, 1 para a sua localização correta, e assim por diante, muito fácil de resolver, em exatamente tantos movimentos quanto o caso com muito espaço. Portanto, a analogia realmente falha, já que o ponto crucial 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 porque o acesso a 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


Um computador com pouquíssimo espaço em disco, em um disco rígido mecânico rotativo, por um período de tempo significativo, geralmente fica mais lento à medida que a fragmentação de arquivos aumenta. Aumento da fragmentação significa leituras lentas - muito lento em casos extremos.

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

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


5



Uma resposta boa, clara e simples que também aborda a questão central principal. - Smithers


Os discos flash podem 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 um número de blocos de apagamento, cada um consistindo de um grande número (centenas, senão milhares) de páginas de escrita e suportará três operações principais:

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

Embora, em teoria, fosse possível que cada um escrevesse em uma unidade flash lendo todas as páginas de um bloco, alterasse uma delas no buffer, apagasse o bloco e, em seguida, gravasse o buffer de volta 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 o apagamento foi iniciado e o write-back foi concluído. Além disso, as partes freqüentemente gravadas do disco se desgastam extremamente rapidamente. Se os primeiros 128 setores do FAT fossem armazenados em um bloco de flash, por exemplo, o drive estaria morto depois que o número total de gravações para todos esses setores atingisse cerca de 100.000, o que não é muito, especialmente considerando que 128 setores teria cerca de 16.384 entradas FAT.

Como a abordagem acima funcionaria horrivelmente, o drive fará com que ele identifique uma página em branco, grave os dados lá e, de alguma forma, registre o fato de que o setor lógico em questão está armazenado nesse local. Contanto que haja páginas em branco suficientes, essa operação pode prosseguir rapidamente. No entanto, se houver falta de páginas em branco, talvez seja necessário encontrar blocos que contenham relativamente poucas páginas "ao vivo", mova as páginas ao vivo desses blocos para algumas das páginas em branco restantes e marque as cópias antigas como " morto"; Tendo feito isso, a unidade será capaz de apagar blocos que contenham apenas páginas "mortas".

Se uma unidade estiver apenas pela metade, então certamente haverá pelo menos um bloco que está no máximo meio cheio de páginas ao vivo (e provavelmente haverá alguns blocos que contêm poucos ou nenhum). Se cada bloco contiver 256 páginas e os blocos menos completos contiverem 64 páginas ao vivo (um caso moderadamente ruim), então para cada 192 gravações de setores solicitadas, o inversor terá que executar 64 cópias de setor adicionais e uma exclusão de bloco (portanto, o custo médio de cada setor de gravação seria de cerca de 1,34 páginas de escrita e 0,005 bloco apaga). Mesmo no pior dos casos, todas as gravações de 128 setores exigiriam 128 cópias adicionais do setor e um apagamento de bloco (custo médio por gravação de gravações de 2 páginas e apagamentos de bloco de 0,01)

Se uma unidade estiver 99% cheia, e os blocos menos cheios tiverem 248/256 páginas ao vivo, então cada 8 gravações setoras exigirá 248 gravações adicionais de página e um apagamento de bloco, gerando assim um custo por gravação de 32 gravações de página e bloco de 0,125 apaga - uma desaceleração muito severa.

Dependendo da quantidade de armazenamento "extra" que uma unidade possui, ela pode não permitir que as coisas fiquem tão ruins assim. 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.


4





Você praticamente acertou em cheio. Você pode pensar em um disco rígido SATA como um meio de comunicação half duplex (isto é, ele só pode aceitar ou transmitir dados de uma vez. Não ambos.) Assim quando a unidade é mantida por um longo tempo 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% de capacidade por esse motivo. Quanto mais cheio for, maior será a probabilidade de fragmentar arquivos, o que faz com que a unidade seja amarrada durante solicitações de leitura (bloqueando, assim, as solicitações de gravação).

Há várias coisas que você pode fazer para ajudar com esses problemas:

  • Reduza a quantidade de dados armazenados e desfragmente regularmente a sua unidade.
  • Mude para o armazenamento baseado em flash.
  • Mantenha os dados em massa armazenados em uma unidade separada do seu sistema operacional.
  • Então, e assim por diante ...

3



Ao usar o flash, a unidade pode ler ou gravar (Novamente, não ambos) quase instantaneamente (9ms é um tempo de busca bastante padrão em um HDD, onde os SSDs normalmente têm um "tempo de busca" no pico e nano segundos) para qualquer localização no disco. en.wikipedia.org/wiki/… - Nathanial Meek
Continuing poing 2: Isto é o que, por exemplo a $Bitmap arquivo é para em NTFS, ou o alocador de bitmaps no ext4. Ou seja essa resposta está espalhando uma séria desinformação. 3. Há uma abundância de buffers de leitura e gravação e o armazenamento em cache que renderiza muito desse problema. Esta resposta descreve um pouco os efeitos da fragmentação e, mesmo assim, limitada a sistemas de arquivos mais antigos, certamente não é precisa de espaço livre. Liberar espaço em disco não acelera o computador. - Jason C
@JasonC, você deve transformar seus comentários em uma resposta. - Celos
este não acontece: "assim, quando a unidade é mantida por um longo tempo procurando um local livre para gravar, ela não pode ler nenhum dado para você"- apenas não faz. Não é assim que os sistemas de arquivos funcionam. Por favor edite sua resposta para parar de espalhar desinformação. - RomanSt
@NathanialMeek Você está misturando camadas um pouco. :) O modo half-duplex da SATA significa que só pode transmitir dados sobre o fio em uma direção. Leituras e gravações de nível mais alto são feitas em pequenos blocos (chamados de FIS), em filas de operação especificadas por SATA. Eles podem ser assíncronos e leituras e gravações rápidas podem ser feitas de e para o cache on-board e diretamente para a memória do sistema via DMA. Os controladores SATA também estão livres para reordenar comandos para otimizar a eficiência. Ponto sendo: A linha não é mantida ocupada enquanto as operações físicas são concluídas e o modo half-duplex do SATA não tem o efeito que você pensa que faz. - Jason C


Seguindo a abordagem curta e doce, minha resposta supersimplificada (estritamente restrita à sua principal confusão) é:

Contanto que o seu

  1. O sistema operacional possui espaço suficiente (para os piores cenários) para cumprir seus deveres como paginação / troca / etc.
  2. Outros softwares também possuem espaço suficiente para suas respectivas necessidades.
  3. O disco rígido é desfragmentado.

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

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

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

  1. Arquivos temporários devem ser limpos regularmente para obter um valioso espaço em disco.
  2. Arquivos de log antigos não são nada além de desperdício de espaço.
  3. Sobras do software instalado / desinstalado são muito desagradáveis.
  4. Os cookies devem ser apagados se você valoriza sua privacidade on-line.
  5. Atalhos inválidos, etc.

Todos esses (e muitos mais) motivos levam a um desempenho pior, pois todos eles confundem o SO ao encontrar o conjunto certo de bits para trabalhar.


3



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 de estranhos comuns 4) Os cookies não são inerentemente problemáticos, e independentemente da opinião, privacidade não está relacionada com desempenho ou espaço no disco rígido, 5) Atalhos quebrados são feios mas geralmente inconsequente de outra forma. Nada disso realmente "confunde" qualquer sistema operacional comum. Tenha muito cuidado com as "dicas" e "ajustes" que você segue. Desconfie de ferramentas de limpeza desnecessárias, especialmente limpadores de registro, que geralmente correm o risco de causar um benefício zero. - Jason C


Um efeito nas unidades giratórias que eu não vi mencionadas: velocidade de acesso e velocidade de transferência de dados é diferente em partes diferentes de um 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 trilha do que as faixas internas. Se a sua unidade puder ler 100 MB / seg. Das faixas mais externas, a velocidade nas trilhas mais internas será menor que 50 MB / seg.

Ao mesmo tempo, há menos faixas entre 1 GB de dados nas trilhas externas do disco do que entre 1 GB de dados nas trilhas mais internas. Portanto, em média, para os dados armazenados no lado externo, menos movimento da cabeça será necessário do que para os dados nas trilhas 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 é maior e torna as coisas mais rápidas. Pelo mesmo motivo, você deve comprar discos rígidos maiores que o necessário se desejar velocidade (contanto que seja acessível), porque você acabará usando apenas as partes mais rápidas da unidade.


2



Adicionando: en.wikipedia.org/wiki/Zone_bit_recording, que atinge isso com algum detalhe. Vale a pena notar: 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 "abrandará" os arquivos existentes que foram acessados ​​com alegria antes das gravações internas. Fwiw o mais barato 1TB 7200RPM 3,5 "unidade que encontrei na Amazon tem uma taxa de leitura média de 14,0MB / s, benchmarked pelo usuário, mesmo representando as diferenças nas faixas internas e externas, isso pode não ser um gargalo durante o uso casual. - Jason C
O desempenho de I / O do @JasonC em termos de rendimento seqüencial quase nunca é uma preocupação na prática; até mesmo uma unidade lenta de 4900 rpm será bastante 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 seu sysadmin favorito local sobre IOPS de armazenamento rotacional em sistemas multiusuário, se você estiver inclinado. Essa é a grande razão pela qual praticamente ninguém está implantando armazenamento rotacional para sistemas multiusuários atualmente; você pode simplesmente nunca abordar as IOPS de SSDs. - Michael Kjörling