Como a compactação NTFS afeta o desempenho?

54

Ouvi dizer que a compactação NTFS pode reduzir o desempenho devido ao uso extra da CPU, mas li relatórios informando que ela pode realmente aumentar o desempenho devido à redução das 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 têm limite de E / S.
  • O processador é um AMD Phenom II com quatro núcleos rodando a 2.0 GHz.
  • O sistema é desfragmentado regularmente usando UltraDefrag .
  • A carga de trabalho é mista de leitura / gravação, com leituras ocorrendo com um pouco mais de freqüência do que as gravações.
  • Os arquivos a serem compactados incluem um subconjunto selecionado de documentos pessoais (não a pasta base completa) e programas, incluindo vários jogos (menos exigentes) e o Visual Studio (que costuma ser I / O bound com mais freqüência do que não).
por bwDraco 12.04.2012 / 19:12

7 respostas

32

I've heard that NTFS compression can reduce performance due to extra CPU usage, but I've read reports that it may actually increase performance because of reduced disk reads.

Correto. Supondo que sua CPU, usando algum algoritmo de compressão, pode compactar em C MB / se descompactar a D MB / s, e seu disco rígido possui velocidade de gravação W e velocidade de leitura R. Desde que C > W, você obtém um ganho de desempenho ao escrever e enquanto D > R, você obtém um ganho de desempenho ao ler. Esta é uma suposição drástica no caso de escrita, uma vez que o algoritmo de Lempel-Ziv (como implementado no software) tem uma taxa de compressão não determinística (embora possa ser restringido com um tamanho de dicionário limitado).

How exactly does NTFS compression affect system performance?

Bem, é exatamente confiando nas desigualdades acima. Contanto que o seu processador possa sustentar uma taxa de compressão / descompressão acima da velocidade de gravação do disco rígido, você deverá experimentar um ganho de velocidade. No entanto, isso tem um efeito em arquivos grandes, que podem sofrer uma fragmentação intensa (devido ao algoritmo) ou não ser compactado em tudo .

Isso pode ser devido ao fato de que o algoritmo Lempel-Ziv diminui à medida que a compressão se move (já que o dicionário continua a crescer, exigindo mais comparações quando os bits chegam). 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 base + offset).

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" é 16 vezes o tamanho de um cluster (portanto, a maioria dos sistemas de arquivos NTFS de cluster de 4 kB exigirá blocos de 64 kB para armazenar arquivos), mas não aumenta além de 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 de discussão. Embora o tempo real necessário para compactar os dados apresente 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 comparada às taxas de busca do disco rígido ordem de milissegundos, ou milhões de ciclos de clock).

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

De lá, você pode querer fazer mais referências sobre o desempenho real do disco rígido. Uma referência realmente importante (no seu caso) seria ver a velocidade com que seus jogos são carregados e ver a velocidade com que 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 alta taxa de transferência e baixa latência. Arquivos grandes são (e devem ser) não afetados devido a problemas de desempenho e latência.

    
por 16.04.2012 / 14:00
7

Você tem um disco bem lento, então sua pergunta tem mérito. A compactação NTFS exige muito do processador e é ajustada para velocidade, em vez de eficiência de compactação.

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

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

Copiar arquivos nesse mesmo disco NTFS requer descompactação e compactação, portanto, eles 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 não-compactáveis, então esses arquivos será mais lento para usar e sem qualquer espaço economizado.

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

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

Mas, como a configuração de hardware varia de um modelo de computador para outro, dependendo do disco, barramento, RAM e CPU, somente o teste dirá qual será o efeito exato da compactação no modelo do computador.

    
por 16.04.2012 / 13:37
4

Eu expliquei aqui na entrada do Wikpedia para NTFS:

NTFS can compress files using LZNT1 algorithm (a variant of the LZ77 [23] ). Files are compressed in 16-cluster chunks. With 4 kB clusters, files are compressed in 64 kB chunks. If the compression reduces 64 kB of data to 60 kB or less, NTFS treats the unneeded 4 kB pages like empty sparse file clusters—they are not written. This allows not unreasonable random-access times. However, large compressible files become highly fragmented as then every 64 kB chunk becomes a smaller fragment. [24][25] Compression is not recommended by Microsoft for files exceeding 30 MB because of the performance hit.[citation needed]

The best use of compression is for files that are repetitive, written seldom, usually accessed sequentially, and not themselves compressed. Log files are an ideal example. Compressing files that are less than 4 kB or already compressed (like .zip or .jpg or .avi) may make them bigger as well as slower.[citation needed] Users should avoid compressing executables like .exe and .dll (they may be paged in and out in 4 kB pages). Compressing system files used at bootup like drivers, NTLDR, winload.exe, or BOOTMGR may prevent the system from booting correctly.[26]

Although read–write access to compressed files is often, but not always [27] transparent, Microsoft recommends avoiding compression on server systems and/or network shares holding roaming profiles because it puts a considerable load on the processor.[28]

Single-user systems with limited hard disk space can benefit from NTFS compression for small files, from 4 kB to 64 kB or more, depending on compressibility. Files less than 900 bytes or so are stored with the directory entry in the MFT.[29]

The slowest link in a computer is not the CPU but the speed of the hard drive, so NTFS compression allows the limited, slow storage space to be better used, in terms of both space and (often) speed.[30] (This assumes that compressed file fragments are stored consecutively.)

Eu recomendo a compactação apenas para arquivos que compactam 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.

    
por 23.12.2012 / 01:50
1

Isso tornará as operações mais lentas. Infelizmente, não podemos medir exatamente quanto ou quão pouco afetará seu sistema. Quando um arquivo comprimido é aberto, o processador desativa o arquivo para que o sistema possa usá-lo; Quando você terminar e clicar em Salvar, ele usa mais poder de processamento para compactá-lo novamente. Só você pode medir o desempenho embora.

    
por 12.04.2012 / 19:55
-1

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

Considere isso: historicamente, tenho visto o desempenho da compactação de arquivos preso em 20-25 MiB / s. Esta é a velocidade normal para compactar um arquivo com um processador de 2.4-3.0Ghz. Compactação NTFS não é multithread. Este é um problema enorme!

Considere que a velocidade decente de um disco rígido hoje é de 100 MiB / s. Se você não obtiver uma compressão de 4-5x, estará perdendo o desempenho em leitura e escrita. É isso que acontece.

    
por 01.06.2018 / 17:18
-2

qualquer um que veja isso hoje deve estar ciente de que, no caso dos videogames, sim, mesmo os corrigidos regularmente, ativar a compactação na unidade ou pasta pode diminuir os tempos de carregamento, mesmo em CPUs mais lentas e até mesmo em ssd ( outros então os mais rápidos que a maioria das pessoas não tem), você precisa desfragmentar regularmente, e eu recomendo strongmente comprar disco perfeito, uma vez que você usa sua desfragmentação "Smart agressive", AFTER compression, deixe sua prevenção automática do recurso de frangmentação ativada, ele fique de olho na atividade e otimize-o automaticamente para evitar a fragmentação, em muito pouco ou nenhum sucesso (testou isso tudo de volta aos velhos quadris de primeira geração tanto da AMD quanto da Intel em janelas modernas recentemente)

muitos arquivos de jogos são comprimidos com muita insanidade, alguns jogos possuem arquivos que ocupam espaço em disco, apesar de estarem praticamente em branco ... um jogo que eu compensei um tempo atrás passou de 6gb em uma de suas pastas para menos de 16mb ..... (gostaria de estar brincando ... falar sobre desperdício de espaço e desperdício de E / S ....)

compactou uma pasta steam de amigos por um tempo atrás, levou 4 dias para compactar (está em um drive de 4tb e começou 3/4 cheio), quando foi feito .... ele estava usando em torno de 1/3 do total de drive, desfragmentar demorou mais um dia (mas, ele começou terrivelmente fragmentado porque, ele nunca tinha feito uma desfragmentação sobre ele, nunca.apesar de multi mmo sobre ele ... e shitloads de vapor / uplay / origem / etc jogos nele ...)

NÃO comprima pastas de imagens / imagens, ele não fará nada de bom, e apenas fará com que elas sejam mais lentas em sistemas lentos (nem notará em um equipamento decente ...)

Eu tenho compactado meus drives em todos os sistemas desde o nt4, MAS, seletivamente, eu realmente descomprimo as pastas onde a compressão faz mais mal do que bem, são as "melhores práticas" que criamos no passado como gamers, geeks , "it" pessoal (antes disso era um termo), e, se fosse verdade, honestamente, eu gostaria que eles tivessem uma maneira mais precisa de comprimir drives / data, lá costumava ser uma ferramenta que não era livre, mas acessível, que tinha você resultados de compactação muito melhores sem compactar nenhum dado que não deva ser compactado ...

de qualquer forma, até mesmo muitos sistemas dual core mais antigos realmente se beneficiam se você  1. execute o ccleaner  2. execute chkdsk / f a partir do prompt de comando elevado (digite y, em seguida, reinicie e deixe-o executar a verificação)  3. comprima a unidade.  4. defrag com mydefrag ou melhor, disco perfeito, isso levará tempo ..  5. fine todas as pastas que contêm arquivos grandes ou imagens / outro conteúdo que dosnt compactam bem / em tudo, descompactar a pasta ou apenas os arquivos, meu exp aqui é, você raramente tem que desfragmentar após esta parte do processo, mas, é melhor verifique.

Eu entendo porque algumas pessoas são contra compressão, mas, tendo testado, quando usado corretamente, ssd ou hdd, e especialmente lento old hdd e ssd, compressão quando usado corretamente pode ajudar seriamente não só economizar espaço, mas, desempenho, mesmo os núcleos duplos mais antigos podem lidar com os ciclos médios de compressão / descompressão mais rapidamente que a unidade nesses sistemas pode se mover, tendo testado isso, primeira geração e mais antigos ssd de design, podem se beneficiar da compactação, não tanto quanto mais lento , um amigo tem um netbook thats tem um muito lento, difícil de substituir ssd nele, bem como muito mais fácil de substituir fácil de acessar o slot ssd, mas, a coisa estúpida não pode arrancar a partir do ssd adicionado sem remover o outro fisicamente ... (horrível bios, mas ... para o que a unidade é, é realmente legal, mais poderosa do que parece ... fora o lento ssd que é instalado de tal forma que você tem que desmontar tudo para chegar lá ......), comprimir essa unidade e apenas ter janelas e mais basi c de apps (como office) no ssd lento na verdade acelerou, mesmo em leitura / gravação, porque seu cpu na verdade acaba esperando pelo maldito ssd..o dosnt pelo mais rápido que ele insalled ... eu sugeri apenas colocar o gerenciador de partida no ssd interno e o so no adicionado mas..hes esperando eventualmente matar a coisa estúpida usando a maioria dele para o arquivo de pagina .... (seu 128gb mas, incrivelmente lento, como eu tenho usb3 flash drives que tem melhor escrever speads .... que custam todos à venda no newegg / amazon ......)

Eu recomendo strongmente comprimir pelo menos sua unidade de jogos / pasta ... meu deus o dif que pode fazer em sistemas rápidos mesmo!

    
por 18.11.2017 / 14:44
-2

O Windows compacta dados não usados recentemente na RAM, com os SSDs parecendo uma fração da velocidade. Eu acho que o desempenho não é um problema. Estou mais preocupado com os blocos compactados que desenvolvem um erro de 1 a 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 que potencialmente diminua a confiabilidade não vale a pena a velocidade extra que ele pode trazer, IMHO. Os arquivos do pacote de texturas de videogames e tais geralmente já estão compactados, então não vejo como a sobreposição de outro conjunto de compactações melhorará as coisas. Eu gostaria de ver um sistema operacional que suporta marcação de arquivos como layout linear na geometria do disco, de modo que a r / w aleatória não seja usada. Ele acelera as coisas até mesmo em SSDs para 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 muitos outros formatos, você está bloqueando a marcação de arquivos como compactáveis e o microgerenciando. Para uma árvore de código-fonte do Linux ou um grande projeto de código aberto, isso pode ajudar bastante, já que a compactação é geralmente ideal em arquivos de texto.

    
por 10.01.2018 / 01:23