
Ouvi dizer que a compactação NTFS pode reduzir o desempenho devido ao uso extra da CPU, mas li relatos de 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 disco rígido de 5.400 RPM e muitas das coisas que faço nele estão vinculadas à E/S.
- O processador é um AMD Phenom II com quatro núcleos rodando a 2,0 GHz.
- O sistema é desfragmentado regularmente usandoUltraDefrag.
- 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 inicial completa) e programas, incluindo vários jogos (menos exigentes) e o Visual Studio (que tende a ser limitado por E/S com mais frequência).
Responder1
Ouvi dizer que a compactação NTFS pode reduzir o desempenho devido ao uso extra da CPU, mas li relatos de que ela pode realmente aumentar o desempenho devido à redução das leituras de disco.
Correto. Supondo que sua CPU, usando algum algoritmo de compactação, possa compactar a C MB/s e descompactar a D MB/s, e seu disco rígido tenha velocidade de gravação W e velocidade de leitura R. Contanto que C > W, você obtém um ganho de desempenho quando escrita, e desde que D > R, você obtém um ganho de desempenho ao ler. Esta é 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 compactação não determinística (embora possa ser restringida por um tamanho de dicionário limitado).
Como exatamente a compactação NTFS afeta o desempenho do sistema?
Bem, é exatamente com base nas desigualdades acima. Contanto que sua CPU possa sustentar uma taxa de compactação/descompactação acima da velocidade de gravação do HDD, você deverá experimentar um ganho de velocidade. No entanto, isso afeta arquivos grandes, que podem sofrer forte fragmentação (devido ao algoritmo) ounão ser comprimido de forma alguma.
Isso pode ser devido ao fato de que o algoritmo Lempel-Ziv fica mais lento à medida que a compactação avança (uma vez que o dicionário continua a crescer, exigindo mais comparações à medida que 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 apenas usando um esquema base + deslocamento).
A compactação também afeta como os arquivos sãodisposto 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ão pedaços de 64 kB para armazenar arquivos), mas não ultrapassa os 64 kB. No entanto, isso pode afetar a fragmentação e os requisitos de espaço em disco.
Como nota final, a latência é outro valor interessante de 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 clock).
Para realmente ver se você experimentará um ganho de velocidade, há algumas coisas que você pode tentar. A primeira é avaliar seu sistema com um algoritmo de compressão/descompressão baseado em Lempel-Ziv. Se você obtiver bons resultados (ou seja, C > W e D > R), tente ativar a compactação em seu disco.
A partir daí, você pode querer fazer mais benchmarks sobre o desempenho real do disco rígido. Um benchmark verdadeiramente importante (no seu caso) seria ver quão rápido seus jogos carregam e quão rápido seus projetos do Visual Studio são compilados.
TL,DR: Compressãopoderser viável para um sistema de arquivos que utiliza muitos arquivos pequenos que exigem alto rendimento e baixa latência. Arquivos grandes não são (e não devem ser) afetados devido a questões de desempenho e latência.
Responder2
Expliquei aqui na entrada da Wikpedia para NTFS:
O NTFS pode compactar arquivos usando o algoritmo LZNT1 (uma variante do LZ77 [23]). Os arquivos são compactados em blocos 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 — elas não serão gravadas. Isso permite tempos de acesso aleatório razoáveis. No entanto, arquivos compactados grandes tornam-se 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 que excedem 30 MB devido ao impacto no desempenho.
O melhor uso da compactação é para arquivos repetitivos, raramente gravados, geralmente acessados sequencialmente e que não são compactados. Os arquivos de log são um exemplo ideal. A compactação de arquivos com menos de 4 kB ou já compactados (como .zip, .jpg ou .avi) pode torná-los maiores e mais lentos. [carece de fontes] Os usuários devem evitar compactar executáveis como .exe e .dll (eles podem ser paginado dentro e fora em páginas de 4 kB). A compactação de arquivos do sistema usados na inicialização, como drivers, NTLDR, winload.exe ou BOOTMGR, pode impedir que o sistema inicialize corretamente.[26]
Embora o acesso de leitura e gravação a arquivos compactados seja frequentemente, mas nem sempre [27] transparente, a Microsoft recomenda evitar a compactação em sistemas de servidores e/ou compartilhamentos de rede que contêm perfis móveis porque isso coloca uma carga considerável no processador.[28]
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 capacidade de compactação. Arquivos com menos de 900 bytes ou mais são armazenados com a entrada de diretório no MFT.[29]
O link mais lento em um computador não é a CPU, mas a velocidade do disco rígido, portanto, a compactação NTFS permite que o espaço de armazenamento lento e limitado seja melhor utilizado, tanto em termos de espaço quanto (frequentemente) de velocidade. (Isso pressupõe que os fragmentos do arquivo compactado sejam armazenados consecutivamente.)
Eu recomendo compactação apenas para arquivos compactados até 64 KB ou menos (ou seja, 1 peça). Caso contrário, seu arquivo consistirá em muitas frações de 64K ou menos.
MyDefrag faz um trabalho melhor de desfragmentação.
Responder3
Você tem um disco bastante lento, então sua pergunta tem mérito. A compactação NTFS exige muito do processador e é ajustada para velocidade e não para eficiência de compactação.
Eu esperaria que você visse uma melhoria (muito) pequena nas operações de leitura. Porém, ao acessar um arquivo residente no cache do sistema você terá um impacto no desempenho, pois ele terá que ser descompactado novamente a cada acesso.
É claro que você verá que as operações de gravação serão mais lentas devido à compactação adicional.
Copiar arquivos neste mesmo disco NTFS requer descompactação e compactação, portanto, serão os que mais sofrerão.
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 incompactáveis, portanto, o uso desses arquivos será mais lento e sem economia de espaço.
Arquivos menores que um cluster de disco (normalmente 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 o volume inteiro.
A compactação NTFS é recomendada para volumes ou arquivos relativamente estáticos. Nunca é recomendado para arquivos de sistema ou para a pasta Usuários.
Mas como a configuração do hardware varia de um modelo de computador para outro, dependendo do disco, barramento, RAM e CPU, apenas os testes dirão qual será o efeito exato da compactação no modelo do seu computador.
Responder4
qualquer um que veja isso hoje deve estar ciente de que, no caso de videogames, sim, mesmo aqueles corrigidos regularmente, ativar a compactação na unidade ou pasta pode diminuir o tempo de carregamento, mesmo em CPUs mais lentos de hoje, e até mesmo em SSDs (exceto o os mais rápidos que a maioria das pessoas não tem), você precisa desfragmentar regularmente, e eu recomendo fortemente comprar um disco perfeito, depois de usar a desfragmentação "inteligente agressiva", APÓS a compactação, deixe o recurso de prevenção automática de fragmentação ativado, ele ficará de olho na atividade e na otimização automática para evitar a fragmentação, com muito pouco ou nenhum impacto no desempenho (testei isso desde os antigos quads de primeira geração da AMD e da Intel em janelas modernas recentemente)
muitos arquivos de jogos são compactados incrivelmente bem, alguns jogos têm arquivos que ocupam espaço em disco, apesar de estarem quase todos em branco... um jogo que compactei há algum tempo passou de 6 GB em uma de suas pastas para menos de 16 MB... (desejo que eu estava brincando...falo sobre desperdício de espaço e desperdício de E/S....)
comprimiu uma pasta Steam de amigos há um tempo, levou 4 dias para compactar (está em uma unidade de 4 TB e começou 3/4 cheio), quando terminou ... ele estava usando cerca de 1/3 do total da unidade, a desfragmentação demorou outro dia (mas começou terrivelmente fragmentado porque ele nunca tinha feito uma desfragmentação nele, nunca... apesar dos multi mmo nele... e um monte de jogos steam/uplay/origin/etc nele... )
NÃO comprima suas pastas de fotos/imagens, isso não fará nenhum bem e apenas tornará o acesso a elas mais lento em sistemas lentos (embora nem perceba em um equipamento 1/2 decente ...)
Eu compactei minhas unidades em todos os sistemas desde o NT4, MAS, seletivamente, vou descompactar pastas onde a compactação faz mais mal do que bem, são as "melhores práticas" que criamos naquela época como jogadores, geeks, "é "caras (antes disso era um termo), e continua sendo verdade, honestamente, eu gostaria que eles tivessem uma maneira mais aprimorada de compactar unidades/dados, costumava haver uma ferramenta que não era gratuita, mas acessível, que deixava vocês muito melhores resultados de compactação sem compactar quaisquer dados que não deveriam ser compactados....
de qualquer forma, mesmo muitos sistemas dual core mais antigos realmente se beneficiam se você 1. executar o ccleaner 2. executar chkdsk /f no prompt de comando elevado (digite y, reinicie e deixe-o executar a verificação) 3. compactar a unidade. 4. desfragmente com mydefrag ou melhor, disco perfeito, isso levará tempo. é que você raramente precisa desfragmentar após esta parte do processo, mas é melhor verificar.
entendo por que algumas pessoas são contra a compactação, mas, depois de testá-la, quando usada corretamente, SSD ou HDD, e especialmente HDDs e SSDs antigos e lentos, a compactação, quando usada corretamente, pode ajudar seriamente não apenas a economizar espaço, mas também desempenho, até mesmo a maioria dos dual mais antigos os núcleos podem lidar com os ciclos médios de compactação / descompactação mais rápido do que a unidade nesses sistemas pode se mover, tendo testado isso, SSDs de primeira geração e de design mais antigos e mais baratos, podem se beneficiar da compactação, não tanto quanto os HDDs mais lentos na maioria dos casos, mas, um amigo tem um netbook que tem um SSD MUITO lento e difícil de substituir, bem como um slot SSD muito mais fácil de substituir e 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 é, ela é realmente legal, mais poderosa do que parece... fora do SSD lento que está instalado de tal forma que você tem que desmontar tudo para chegar até ele... ...), compactar aquela unidade e apenas ter o Windows e os aplicativos mais básicos (como o Office) no SSD lento realmente acelerou, mesmo em leitura/gravação, porque sua CPU acaba esperando pelo maldito SSD. não é para o mais rápido que ele instalou... eu sugeri apenas colocar o carregador de boot no SSD interno e o sistema operacional no adicionado, mas... ele espera eventualmente matar a coisa estúpida usando a maior parte dele para o arquivo de paginação. ..(são 128 GB, mas extremamente lentos, como se eu tivesse unidades flash USB3 com melhor velocidade de gravação... isso custa tudo à venda na newegg/amazon......)
Eu sugiro fortemente compactar pelo menos a unidade/pasta do seu jogo... meu Deus, a diferença que isso pode fazer até mesmo em sistemas rápidos!!!