Como a compactação NTFS afeta o desempenho?

57

Ouvi dizer que a compactação NTFS pode reduzir o desempenho devido ao uso extra da CPU, mas li relatórios que na verdade podem aumentar o desempenho devido à redução de leituras de disco. Como exatamente a compactação NTFS afeta o desempenho do sistema?

Notas:

  • Estou executando um laptop com um disco rígido de 5400 RPM e muitas das coisas que faço nele são vinculadas à E / S.
  • O processador é um AMD Phenom II com quatro núcleos rodando a 2,0 GHz.
  • O sistema é desfragmentado regularmente usando o UltraDefrag .
  • A carga de trabalho é mista de leitura e gravação, com leituras ocorrendo um pouco mais frequentemente do que gravações.
  • Os arquivos a serem compactados incluem um subconjunto selecionado de documentos pessoais (não a pasta pessoal completa) e programas, incluindo vários jogos (menos exigentes) e o Visual Studio (que tende a ser vinculado à E / S com mais frequência).
bwDraco
fonte
12
Eu acho que a única resposta certa é "meça no seu sistema".
Mehrdad
Eu acho que isso deve permanecer uma pergunta genérica. A CPU é mais rápida que a memória. Hoje em dia. Vamos assumir isso. Sobre o desempenho? Não faço ideia, mas também estou curioso.
Apache
11
Que sistema é esse? quantos núcleos você tem? sendo uma operação intensiva da CPU, você terá um pouco mais de CPU extra em relação à velocidade do disco rígido para as operações que você fará? O efeito no consumo de energia e temperatura. A compressibilidade dos dados. quanto é leitura e quanto é gravação? A compactação é lenta, mas a leitura de volta (dependendo) deve ser mais rápida com montantes facilmente mensuráveis.
Psycogeek
Relacionado (mas com um pouco diferentes circunstâncias; específica para uma pasta com muitos ícones): superuser.com/questions/38605/...
bwDraco
11
Btw uma coisa que você pode tentar, é desfragmentar. Ouvi maravilhas sobre o UltimateDefrag, mas nunca tentei até agora. (Entre Diskeeper e PerfectDisk, eu usar o último, uma vez que Diskeeper parou de lançar novas versios, etc.)
Apache

Respostas:

36

Ouvi dizer que a compactação NTFS pode reduzir o desempenho devido ao uso extra da CPU, mas li relatórios que na verdade podem aumentar o desempenho devido à redução de leituras de disco.

Corrigir. Supondo que sua CPU, usando algum algoritmo de compactação, possa comprimir a C MB / se descomprimir a D MB / s, e seu disco rígido tiver velocidade de gravação W e velocidade de leitura R. Enquanto C> W, você obtém um ganho de desempenho quando escrevendo, e enquanto D> R, você obtém um ganho de desempenho ao ler. Essa é uma suposição drástica no caso de gravação, uma vez que o algoritmo de Lempel-Ziv (conforme implementado no software) possui uma taxa de compressão não determinística (embora possa ser restringida por um tamanho limitado de dicionário).

Como exatamente a compactação NTFS afeta o desempenho do sistema?

Bem, é exatamente contando com as desigualdades acima. Desde que sua CPU possa suportar uma taxa de compactação / descompactação acima da velocidade de gravação do seu HDD, você deverá experimentar um ganho de velocidade. No entanto, isso afeta os arquivos grandes, que podem sofrer fragmentação pesada (devido ao algoritmo) ou não serem compactados .

Isso pode ser devido ao fato de que o algoritmo Lempel-Ziv diminui à medida que a compactação avança (já que o dicionário continua a crescer, exigindo mais comparações à medida que os bits entram). A descompressão é quase sempre a mesma taxa, independentemente do tamanho do arquivo, no algoritmo Lempel-Ziv (já que o dicionário pode ser endereçado usando um esquema de base + deslocamento).

A compactação também afeta o modo como os arquivos são dispostos no disco . Por padrão, uma única "unidade de compactação" tem 16 vezes o tamanho de um cluster (portanto, a maioria dos sistemas de arquivos NTFS de cluster de 4 kB exigirá pedaços de 64 kB para armazenar arquivos), mas não aumenta os 64 kB. No entanto, isso pode afetar os requisitos de fragmentação e espaço no disco.

Como nota final, a latência é outro valor interessante da discussão. Embora o tempo real necessário para compactar os dados introduza latência, quando a velocidade do clock da CPU está em gigahertz (ou seja, cada ciclo de clock é menor que 1 ns), a latência introduzida é insignificante em comparação com as taxas de busca do disco rígido (que está no ordem de milissegundos ou milhões de ciclos de relógio).


Para realmente ver se você experimentará um ganho de velocidade, há algumas coisas que você pode tentar. O primeiro é avaliar o seu sistema com um algoritmo de compressão / descompressão baseado em Lempel-Ziv. Se você obtiver bons resultados (por exemplo, C> W e D> R), tente ativar a compactação no disco.

A partir daí, convém fazer mais benchmarks sobre o desempenho real do disco rígido. Uma referência verdadeiramente importante (no seu caso) seria ver com que rapidez seus jogos são carregados e com que rapidez seus projetos do Visual Studio são compilados.

TL, DR: a compactação pode ser viável para um sistema de arquivos que utiliza muitos arquivos pequenos que exigem alto rendimento e baixa latência. Arquivos grandes são (e devem ser) não afetados devido a problemas de desempenho e latência.

Avanço
fonte
Você pode vincular bons benchmarks baseados em algoritmos de compressão / descompressão baseados em Lempel-Ziv?
user1075375
A fragmentação que a compactação NTFS cria (e que é adicionada quando um arquivo é modificado) reduz facilmente qualquer aumento de desempenho. Se você tiver um conjunto de dados muito compactável que não será modificado com frequência e desfragmentar após a compactação, pode ser um ganho líquido. A modificação após a compactação causará fragmentação desagradável. Re: benchmarks: até mesmo CPUs lentas hoje são rápidas na LZ. A questão da fragmentação é de longe o maior problema. É um caso clássico em que uma otimização é útil apenas em contextos limitados. Escolha o que NTFS comprimir com muito cuidado e será uma vitória geral.
Jody Lee Bruchon
11
E quanto aos SSDs?
Girafa Violeta
Como eu poderia medir C, D, W e R?
Geremia
Eu apreciaria alguns exemplos práticos típicos para essas abstrações "C> W e D> R"? É útil, por exemplo, compactar "Arquivos de Programas" e / ou "Windows" em um Laptop de 4 núcleos com HDD? e com SSD? O consumo da bateria será afetado significativamente?
kxr 13/04
7

Você tem um disco bastante lento, portanto sua pergunta tem mérito. A compactação NTFS consome bastante o processador e é ajustada para velocidade, e não para eficiência de compactação.

Eu esperaria que você visse uma (muito) pequena melhoria nas operações de leitura. No entanto, ao acessar um arquivo que reside no cache do sistema, você terá um impacto no desempenho, pois terá que ser descompactado novamente a cada acesso.

Obviamente, você verá que as operações de gravação serão mais lentas devido à compactação adicional.

A cópia de arquivos nesse mesmo disco NTFS requer descompactação e compactação; portanto, elas sofrerão mais.

A compactação NTFS também pode aumentar significativamente a fragmentação, mas isso não é um problema para a maioria dos computadores 'típicos' sob cargas de trabalho 'típicas'.

Muitos tipos de arquivos, como imagens JPEG ou arquivos de vídeo ou .zip, são basicamente compactáveis, portanto, esses arquivos serão mais lentos de usar e sem espaço economizado.

Arquivos menores que um cluster de disco (normalmente 4K) não são compactados, pois não há ganho. No entanto, um tamanho de cluster ainda menor às vezes é recomendado ao compactar todo o volume.

A compactação NTFS é recomendada para arquivos ou volumes relativamente estáticos. Isso nunca é recomendado para arquivos do sistema ou para a pasta Usuários.

Porém, como a configuração de hardware varia de um modelo de computador para outro, dependendo do disco, barramento, RAM e CPU, apenas os testes informam qual será o efeito exato da compactação no modelo do seu computador.

harrymc
fonte
5

Eu expliquei aqui na entrada Wikpedia para NTFS:


O NTFS pode compactar arquivos usando o algoritmo LZNT1 (uma variante do LZ77 [23]). Os arquivos são compactados em pedaços de 16 clusters. Com clusters de 4 kB, os arquivos são compactados em blocos de 64 kB. Se a compactação reduzir 64 kB de dados para 60 kB ou menos, o NTFS tratará as páginas desnecessárias de 4 kB como clusters de arquivos esparsos vazios - eles não serão gravados. Isso permite tempos de acesso aleatório não razoáveis. No entanto, arquivos compactáveis ​​grandes ficam altamente fragmentados, pois cada pedaço de 64 kB se torna um fragmento menor. [24] [25] A compactação não é recomendada pela Microsoft para arquivos com mais de 30 MB devido ao desempenho atingido. [Citação necessário]

O melhor uso da compactação é para arquivos repetitivos, raramente gravados, geralmente acessados ​​sequencialmente e não são eles próprios compactados. Arquivos de log são um exemplo ideal. A compactação de arquivos com menos de 4 kB ou já compactados (como .zip ou .jpg ou .avi) pode torná-los maiores e mais lentos. [Citação necessário] Os usuários devem evitar compactar executáveis ​​como .exe e .dll (eles podem ser paginado dentro e fora em 4 kB páginas). A compactação de arquivos do sistema usados ​​na inicialização, como drivers, NTLDR, winload.exe ou BOOTMGR, pode impedir que o sistema seja inicializado corretamente. [26]

Embora o acesso de leitura e gravação a arquivos compactados seja frequentemente transparente, mas nem sempre [27], a Microsoft recomenda evitar a compactação em sistemas de servidor e / ou compartilhamentos de rede que possuam perfis de roaming, pois isso sobrecarrega o processador. [28]

Os sistemas de usuário único com espaço limitado no disco rígido podem se beneficiar da compactação NTFS para arquivos pequenos, de 4 kB a 64 kB ou mais, dependendo da compressibilidade. Arquivos com menos de 900 bytes são armazenados com a entrada de diretório na MFT. [29]

O link mais lento em um computador não é a CPU, mas a velocidade do disco rígido, então a compactação NTFS permite que o espaço de armazenamento lento e limitado seja melhor utilizado, em termos de espaço e (geralmente) velocidade. [30] (Isso pressupõe que fragmentos de arquivo compactado sejam armazenados consecutivamente.)


Eu recomendo a compactação apenas para arquivos compactados para 64 KB ou menos (ou seja, 1 peça). Caso contrário, seu arquivo consistirá em muitas frações de 64 K ou menos.

MyDefrag faz um trabalho melhor de desfragmentação.

TomTrottier
fonte
Minha experiência com o UltraDefrag é que ele faz um trabalho decente, oferecendo uma desfragmentação mais completa do que o desfragmentador interno do Windows, mas, tanto quanto eu sei, não é exatamente tão inteligente quanto o MyDefrag. Estou usando a versão 6 beta, que possui alguns bugs e recursos não implementados, mas é muito mais rápida que as versões anteriores.
bwDraco
1

Isso tornará as operações mais lentas. Infelizmente, não podemos medir exatamente quanto ou quão pouco isso afetará seu sistema. Quando um arquivo compactado é aberto, é necessário o poder do processador para descompactá-lo para que o sistema possa usá-lo; quando você termina e clica em Salvar, ele usa mais energia do processador para compactá-lo novamente. Somente você pode medir o desempenho.

O canadense Luke REINSTATE MONICA
fonte
4
Eu acho que você perdeu todo o ponto da questão. Há uma troca entre levar mais tempo para compactar / descompactar dados e levar menos tempo para ler dados do disco (em virtude da leitura de menos dados). Portanto, sua afirmação não é garantida. Um exemplo óbvio em que a compactação pode facilmente ser uma vitória é quando você está lendo um sistema de arquivos de rede. Com um sistema de arquivos local, é menos claro, mas não é garantido que você siga um caminho ou outro.
jjlin
@jjlin Você tem exemplos de quando é mais rápido?
Canadian Luke REINSTATE MONICA
@Luke, vamos supor que sua CPU, usando algum algoritmo de compactação, possa comprimir a C MB / se descomprimir a D MB / s, e seu disco rígido tem velocidade de gravação W e velocidade de leitura R. Enquanto C> W, você obtém um ganho de desempenho ao escrever, e desde D> R, você obtém um ganho de desempenho ao ler.
Revelação
@ Lucas, é mais rápido quando usado em drives lentos, como drivers IDE antigos ou pen drives USB 1.0.
Kurast
-1

qualquer pessoa que vê isso hoje deve estar ciente de que, no caso de videogames, sim, mesmo os regularmente corrigidos, a ativação da compactação na unidade ou pasta pode diminuir o tempo de carregamento, mesmo nos cpus mais lentos de hoje e até nos SSDs (além dos SSDs). os mais rápidos que a maioria das pessoas não tem), você precisa desfragmentar regularmente, e eu recomendo fortemente a compra de um disco perfeito, depois de usar o desfragmentador "Inteligente agressivo", APÓS a compactação, deixe seu recurso de prevenção automática de frenético ativado, ele ficará de olho em atividade e otimização automática para evitar a fragmentação, com muito pouco ou nenhum desempenho perfeito (teste isso desde os antigos quads de primeira geração de amd e intel nas janelas modernas recentemente afetados)

muitos arquivos de jogos são compactados incrivelmente bem, alguns jogos têm arquivos que ocupam espaço em disco, apesar de estarem praticamente em branco ... um jogo que eu compactuei um tempo atrás passou de 6 GB em uma de suas pastas para menos de 16 MB ... estava brincando ... falar sobre espaço desperdiçado e E / S desperdiçada ....)

compactou uma pasta de vapor de amigos um tempo atrás, levou 4 dias para compactar (estava em uma unidade de 4 TB e começou a ficar 3/4), quando estava pronto ... ele estava usando cerca de 1/3 do total da unidade, desfragmentar demorou mais um dia (mas começou horrivelmente fragmentado porque, ele nunca tinha desfragmentado isso, nunca ... apesar de vários mmo's nele ... e muita merda de jogos steam / uplay / origin / etc nele ... )

NÃO comprima suas pastas de imagens / imagens, ele não fará nenhum bem e apenas tornará o acesso mais lento em sistemas lentos (nem notará em uma plataforma decente de 1/2, embora ...)

eu comprimi meus discos em todos os sistemas desde o nt4, mas, seletivamente, descompactarei pastas nas quais a compressão causa mais danos do que benefícios, são as "melhores práticas" que criamos no passado como jogadores, geeks " "pessoal (antes disso era um termo), e, permaneceu verdadeiro, honestamente, eu gostaria que eles tivessem uma maneira mais refinada de comprimir drives / dados, costuma haver uma ferramenta que não era gratuita, mas acessível, que te deixava muito melhor resultados de compactação sem compactar dados que não devem ser compactados ....

de qualquer maneira, mesmo muitos sistemas antigos de núcleo duplo se beneficiam de maneira geral se você 1. executa o ccleaner 2. executa o chkdsk / f no prompt de comando elevado (digite y, em seguida, reinicie e deixe executar a verificação) 3. comprima a unidade. 4. desfragmentar com mydefrag ou melhor, disco perfeito, isso levará tempo .. 5. refine todas as pastas que contenham arquivos grandes ou imagens / outro conteúdo que não comprima bem / descomprima, descompacte a pasta ou apenas os arquivos, minha exp aqui ou seja, você raramente precisa desfragmentar após essa parte do processo, mas é melhor verificar.

Eu entendo por que algumas pessoas são contra a compactação, mas, depois de testá-lo, quando usado corretamente, ssd ou hdd e, especialmente, lento HDD e SSD antigos, a compactação quando usada corretamente pode ajudar seriamente não apenas a economizar espaço, mas também ao desempenho os núcleos podem lidar com os ciclos médios de compactação / descompactação mais rapidamente do que a unidade nesses sistemas pode se mover, tendo testado esses SSDs de primeira geração e mais antigos, mais baratos, podem se beneficiar da compactação, não tanto quanto os HDs mais lentos na maioria dos casos, mas um amigo tem um netbook que tem um SSD MUITO lento e difícil de substituir, além de muito mais fácil substituir o slot ssd de fácil acesso, mas a coisa estúpida NÃO PODE inicializar a partir do ssd adicionado sem remover o outro fisicamente ... (BIOS horrível, mas ... pelo que a unidade é, na verdade é legal, mais poderosa do que parece ..fora do SSD lento instalado de forma que você precise desmontar tudo para obtê-lo ......), compactando essa unidade e tendo apenas o Windows e os aplicativos mais básicos (como o escritório) no lento O ssd realmente acelerou, mesmo em leitura / gravação, porque o seu processador realmente acaba esperando o maldito ssd ... não é o mais rápido que ele instalou ... sugeri apenas colocar o carregador de inicialização no ssd interno e no sistema operacional nos but..hes adicionados esperando eventualmente matar a coisa estúpida usando a maior parte para o arquivo de paginação .... (seus 128 gb, mas, muito devagar, como se eu tivesse drives flash USB3 que melhor escrevem speads ... que custam tudo à venda na newegg / amazon ......)comprimir essa unidade e ter apenas o Windows e os aplicativos mais básicos (como o office) no SSD lento realmente acelerou, mesmo em leitura / gravação, porque seu processador acaba esperando o maldito ssd ... não é o mais rápido um que ele insalou ... eu sugeri apenas colocar o carregador de inicialização no ssd interno e o sistema operacional no but adicionado, mas ... esperando, eventualmente, matar a coisa estúpida usando a maior parte para o arquivo de paginação .... (seus 128gb mas, incrivelmente lento, como eu tenho pen drives USB3 que melhor escrevem speads .... que custam tudo à venda no newegg / amazon ......)comprimir essa unidade e ter apenas o Windows e os aplicativos mais básicos (como o office) no SSD lento realmente acelerou, mesmo em leitura / gravação, porque seu processador acaba esperando o maldito ssd ... não é o mais rápido um que ele insalou ... eu sugeri apenas colocar o carregador de inicialização no ssd interno e o sistema operacional no but adicionado, mas ... esperando, eventualmente, matar a coisa estúpida usando a maior parte para o arquivo de paginação .... (seus 128gb mas, incrivelmente lento, como eu tenho pen drives USB3 que melhor escrevem speads .... que custam tudo à venda no newegg / amazon ......)hes esperando eventualmente matar a coisa estúpida usando a maior parte dele para o arquivo de paginação .... (seus 128 gb, mas, muito devagar, como se eu tivesse drives flash USB3 com melhor gravação de speads .... que custam tudo à venda em newegg / amazon ......)hes esperando eventualmente matar a coisa estúpida usando a maior parte dele para o arquivo de paginação .... (seus 128 gb, mas, muito devagar, como se eu tivesse drives flash USB3 com melhor gravação de speads .... que custam tudo à venda em newegg / amazon ......)

Eu sugiro fortemente comprimir pelo menos a sua unidade / pasta de jogos ... meu Deus, a diferença que pode fazer em sistemas ainda mais rápidos !!!

Una Salus Victis
fonte
a maioria dos jogos já comprime seus dados, que não podem ser mais compactados
M.kazem Akhgary
-2

O Windows compacta dados usados ​​não recentemente na RAM, com até SSDs sendo uma fração da velocidade, eu acho que o desempenho não é um problema. Estou mais preocupado com blocos compactados que desenvolvem um erro de 1-2 bits e não conseguem recuperar alguns ou todos os dados ... ou um erro de dicionário no pior dos casos. Qualquer coisa que produza um disco que não seja legível em sistemas operacionais alternativos e potencialmente diminua a confiabilidade não vale a velocidade extra que ele pode trazer, IMHO. Arquivos de pacote de textura de videogame e similares já estão compactados, então não vejo como as camadas de outro conjunto de compactação melhorarão as coisas. Gostaria de ver um sistema operacional que suporte a marcação de arquivos como layout linear na geometria do disco, para que r / w aleatório não seja usado. Ele acelera as coisas, mesmo nos SSDs, em certos casos de uso. Meu outro problema com a compactação é que, como as imagens e os filmes já estão compactados, assim como os documentos do MS Office e vários outros formatos, você fica preso marcando os arquivos como compactáveis ​​e microgerenciando-os. Para uma árvore de código-fonte Linux ou um grande projeto de código-fonte aberto, isso pode ajudar bastante, já que a compactação geralmente é ideal em arquivos de texto.

Guesty McGuesterson
fonte
11
Esclarecer a questão da linearidade na geometria ajudará principalmente os HDDs e arquivos com mais de 500 MB. Já trabalhei com arquivos TIFF de 500 GB antes que se beneficiassem bastante no carregamento. O Windows tenta fazer isso, mas isso depende da unidade ser desfragmentada regularmente e de um tamanho de cluster adequado que pode não ser o ideal para outros aplicativos. Para contornar essa bagunça, eu uso um SSD para inicialização, uma unidade de 2 TB para projetos de música / filme, outra de 2 TB para arquivos RAW de DSLRs e uma de 4 TB que armazena grandes quantidades de código-fonte que eu poderia comprimir para obter um ganho bastante grande em espaço.
Guesty McGuesterson
11
Idealmente, eu gostaria de um segundo SSD apenas para "arquivos de programa" para limitar a disputa entre os arquivos do sistema e esses, mas o Windows tende a interromper as tentativas de configurá-lo após algumas semanas. Eu posso criar D: \ Arquivos de Programas ou qualquer outra coisa, mas muitos programas são codificados para colocar porcaria na unidade do sistema literalmente em qualquer lugar.
Guesty McGuesterson
-2

A compactação do Microsoft Windows NTFS não deve ser usada para nada além de arquivos de log ou, de modo geral, arquivos de texto ou arquivos altamente compactáveis.

Considere o seguinte: historicamente, vi o desempenho da compactação de arquivos preso em 20 a 25 MiB / s. Essa é a velocidade normal para compactar um arquivo com um processador de 2,4 a 3,0 Ghz. A compactação NTFS não é multithread. Este é um problema enorme!

Considerar uma velocidade decente para um disco rígido hoje em dia é de 100 MiB / s. Se você não obtiver uma compressão 4-5x, estará perdendo bastante desempenho na leitura e na escrita. Isto é o que acontece.

Alessandro Zigliani
fonte