Este tópico discute a compactação NTFS nos HDDs como um método para melhorar o desempenho do acesso ao disco e conclui que é ruim com mais frequência do que isso. Mas sempre vi a compressão como uma maneira de economizar espaço e aprendi sua eficácia nisso. E agora eu tenho um SSD onde o espaço é caro e a penalidade de desempenho, por exemplo, para ler / gravar 2 clusters em vez de 1 é muito menor.
Por outro lado, como os SSDs são muito mais rápidos que os HDDs, eu esperaria que uma taxa de transferência mais alta resultasse em maior uso da CPU. Isso pode se tornar um problema? Quaisquer outros pensamentos sobre o assunto?
Eu gosto do efeito de economia de espaço, não é enorme, mas está lá. Se o desempenho é uma preocupação, no entanto, prefiro desativá-lo:
fonte
Respostas:
A Microsoft escreveu isso há um tempo atrás em um blog :
E em um artigo da KB escreve isso :
Resumo:
compactar apenas arquivos pequenos que nunca mudam (apenas leituras e sem gravações) porque as leituras são rápidas, mas as gravações exigem descompactação e nova compactação, que consome energia da CPU e o tipo de armazenamento não é tão importante.
fonte
Como Claudio diz muitas coisas em detalhes, vou retomar sua opinião, que também é minha, e vi os mesmos efeitos depois de tentar o que ele diz.
Para SSD, a compactação NTFS não deve ser usada.
Agora vou enumerar alguns motivos para tal afirmação:
Motivo Nº1: Ele mata o SSD musch mais rápido, uma vez que faz duas gravações; A compactação NTFS sempre grava dados não compactados antes de iniciar a compactação na RAM e reescreve os dados compactados apenas se for um ganho de pelo menos 4KiB.
Motivo Nº2: o uso do cluster NTFS 4KiB em um SSD está perdendo 50% da velocidade do SSD, verifique qualquer benchmark e verá que os blocos de 128KiB tornam o SSD duas vezes mais rápido que o uso de blocos de 4KiB, e a compactação NTFS pode ser usada apenas em partições NTFS de cluster 4KiB.
Motivo Nº3: Existem contêineres (como o PISMO File Mount) que podem criar um contêiner visto como compactação e / ou criptografia dinamicamente, tais conteúdos fazem a compactação na RAM e não enviam dados não compactados para o disco antes de reescrever na forma compactada, também mais, o PISMO obtém uma melhor taxa de compactação que o NTFS.
Existem muito mais motivos, mas esses são os principais mais importantes.
O ponto otrer é SPEED, qualquer compactação é feita na CPU; portanto, se você não tiver uma CPU muito rápida (o mono-thread é usado para isso no NTFS enquanto o multi-thread é usado em alguns contêineres) verá a leitura / gravação muito lenta quando comprimido; o pior é que você pode ter uma CPU muito rápida, mas se ela estiver sendo usada para outras coisas (como renderização, transcodificação, etc.), não haverá CPU sobrando para compactação; portanto, novamente, você terá um desempenho ruim.
A compactação NTFS é boa apenas para discos lentos tradicionais quando você tem CPU sem muito uso, mas requer uma boa desfragmentação após cada gravação (no nível do arquivo), porque cada bloco de 64KiB (compactado ou não) é gravado em uma posição múltipla de 64KiB; a única maneira de compactar esses fragmentos é depois da compactação (ou gravação em uma pasta compactada), desfragmentando esse arquivo.
PD: Cuidado, estamos falando do Windows em hardware real, não dentro de máquinas virtuais; o importante é quem escreve no meio físico, outros podem ter camadas de cache que podem mitigar os efeitos e também melhorar bastante as coisas.
fonte
Ninguém fala sobre o problema principal em não SSD, é fragmentação.
Cada bloco de 64KiB é gravado onde estaria sem compactação, mas pode ser compactado; portanto, pelo menos é <= 60KiB; depois, grava menos de 64KiB; o bloco de nidificação de bits irá para onde iria, como se o anterior não estivesse. comprimir, então muitas lacunas aparecem.
Teste-o com um arquivo de vários gigabytes de uma máquina virtusl de qualquer sistema Windows (eles tendem a ser reduzidos em 50%, mas com enormes> 10000 fragmentos).
E para SSDs há algo que não foi dito, como diabos isso escreve? Quero dizer, se ele o escreve sem compactação e o substitui com a versão compactada (para cada mega bloco de 64KiB), a vida do SSD é muito reduzida; mas se ele gravá-lo diretamente no formato compactado, o SSD live pode ser maior ou menor ... mais se você escrever esse 64KiB apenas de uma vez, mais curto, muito mais curto se você escrever esse 64KiB em 4KiB, porque ele gravará 64KiB (na forma compactada) tantas vezes quanto 64/4 = 16 vezes.
A penalidade de desempenho é causada porque o tempo de CPU necessário para compactar / descompactar é maior do que o tempo ganho, pois não é necessário gravar blocos 4KiB ... portanto, com uma CPU muito rápida e uma compressão de disco muito lenta, reduz o tempo de gravação e leitura, mas se o SSD é muito rápido e a CPU é bastante lenta, ele escreverá muito mais devagar.
Quando falo de CPU rápida ou lenta, quero dizer que, nesse momento, a CPU pode ser usada por 'matemática' ou outro processo; portanto, pense sempre em CPU livre, não em especificações de CPU no papel, o mesmo vale para disco / SSD, ele pode estar em uso por vários processos.
Digamos que o 7Zip grave um arquivo enorme de outro disco com o LZMA2, ele usará muita CPU; portanto, ao copiar um arquivo compactado NTFS, ele não terá CPU livre, portanto, ficará mais lento do que sem o NTFS compactação, mas assim que o 7Zip terminar de usar a CPU, essa CPU poderá compactar NTFS mais rapidamente e, nesse momento, a compactação NTFS poderá fazer as coisas mais rapidamente.
Pessoalmente, nunca uso compactação NTFS, prefiro contêineres PFO de montagem de arquivo PISMO (com compactação e também permite a inscrição, tanto em tempo real quanto transparente para aplicativos), oferece uma taxa de compressão muito melhor e menos impacto na CPU, enquanto é uma leitura e escreva em tempo real, sem necessidade de descompactar antes do uso, basta montá-lo e usá-lo no modo de leitura e gravação.
Como o PISMO faz a compactação na RAM antes da gravação no disco, ele pode fazer com que o SSD dure mais, meus testes de compactação NTFS me fazem pensar que envia dados para o disco duas vezes, primeiro descompactado e depois, se puder compactá-lo, é sobrescrito na forma compactada .
Por que a velocidade de gravação compactada NTFS no meu SSD é quase a metade da não compactada com arquivos do que a compactação em quase 1/2 do seu tamanho ou em tamanhos compactados inferiores? No meu AMD Threadripper 2950 (32 núcleos e 64 threads) com 128GiB de ram (CPU rápida, CPU muito rápida) com menos de 1% de uso, por isso há CPU suficiente para fazer a compactação mais rapidamente do que a velocidade secional máxima do SSD, talvez porque A compactação NTFS é iniciada depois que os blocos de 64 KB são enviados para o disco descompactado e substituídos pela versão compactada ... oh, se eu fizer isso em uma máquina virtual executando o Linux no host e o Windows no convidado, o cache do Linux informa que esses clusters são gravados duas vezes , e a velocidade é muito, muito mais rápida (o Linux está armazenando em cache as gravações NTFS não compactadas enviadas pelo Windows Guest e, após serem substituídas por dados compactados, o linux não envia dados não compactados para o disco,
Minha recomendação, não use a compactação NTFS, exceto nas máquinas virtuais, os hóspedes executam janelas se o host for Linux e nunca se você usar muito a CPU, se a CPU não for rápida o suficiente.
O SSD moderno tem um enorme cache ram interno, de modo que a gravação + overwtite causada pela compactação NTFS pode ser mitigada pelo sistema de cache interno SSD.
Meus testes foram feitos em SSDs "bonitas" sem RAM interna para cache dentro do SSD, quando eu as repito naquelas com cache ram, a velocidade de gravação é rápida, mas não como se poderia imaginar.
Faça seus próprios testes e use tamanhos enormes de arquivos (maior que o total de tam instalado para evitar resultados ocultos do cache).
A propósito, algo que algumas pessoas não sabem sobre o vompression NTFS ... qualquer arquivo de 4KiB ou menos nunca será compactado com NTFS porque não há como reduzir seu tamanho pelo menos em 4KiB.
A copressão NTFS retira 64KiB, compacta-os e, se é possível reduzir um cluster (4KiB), é gravada compactada, 64KiB são 16 blocos de 4KiB (consecutivos).
Se um arquivo de 8KiB quando a compactação terminar, o resultado final for superior a 4KiB, ele não salvará nenhum cluster; portanto, ele será gravado não compactado ... e assim por diante ... a pressão deverá ganhar pelo menos 4KiB.
Ah, e para a compactação NTFS, o NTFS deve estar com o tamanho do cluster de 4KiB.
Tente fazer um teste: Use o cluster de 128KiB em um NTFS no SSD; você verá um enorme desempenho melhorar as velocidades de gravação e leitura.
Os sistemas de arquivos no SSD com cluster 4KiB estão perdendo muito de sua velocidade, na maioria dos casos mais de 50% perdidos ... veja qualquer benchmark por aí que teste com tamanhos de bloco diferentes, de 512Bytes a 2MiB, a maioria dos SSD grava em dobro velocidade quando no tamanho do cluster de 64KiB (ou 128KiB) do que no 4KiB.
Deseja uma verdadeira motivação no seu SSD? Não use o cluster 4KiB no sistema de arquivos, use 128KiB.
Use o cluster 4KiB somente se mais de 99% dos seus arquivos tiverem menos de 128 KB.
Etc, etc, etc ... teste, teste e teste seu próprio caso.
Nota: Crie a partição NTFS do sistema com diskpart no modo console enquanto instala o Windows com um cluster de 128KiB ou de outro Windows, mas não permita que o Windows seja formatado enquanto estiver na parte gráfica do instalador (ele sempre será formatado como NTFS do cluster 4KiB).
Agora, todo o meu Windows está instalado na partição NTFS do cluster de 128KiB em> 400GiB SSD (SLC).
Espero que as coisas fiquem claras, o M $ não está dizendo como o iy escreve o NTFS compactado, meus testes me dizem que ele escreve duas vezes (64KiB descompactados e, em seguida, <= 60KiB compreensed), não apenas uma vez (cuidado com isso se estiver no SSD).
Cuidado: o Windows tenta compactar NTFS alguns diretórios internos, não importa se você não comprime NTFS, a única maneira de realmente evitá-lo se o tamanho do cluster NFTS for diferente de 4KiB, pois a compactação NTFS só funciona em partições NTFS com tamanho de cluster 4KiB
fonte
Eu vejo os comentários de outras pessoas e acho que as pessoas esquecem frequentemente o cenário mais útil em que a compactação de arquivos / pastas NTFS tem uma grande vantagem no SSD: ferramentas de desenvolvimento modernas. Meu Matlab licenciado pela universidade tem em sua pasta de instalação (para usuário comum como somente leitura) as seguintes quantidades de dados:
28,5 GB Dados 30,6 GB Tamanho no disco Contém 729.246 arquivos e 15.000 pastas (!!!)
Este é no meu laptop com SSD de 500 GB, onde a partição do Windows é de 200 GB.
Eu sei que o Matlab é um pouco extremo a esse respeito, mas muitos devtools têm propriedades semelhantes: uma tonelada de arquivos de texto pequenos e altamente compactáveis (cabeçalhos, código, arquivos XML). Estou compactando o Matlab agora antes de instalar o Intel Quartus FPGA devtool e o Octave já está compactado da seguinte maneira:
Tamanho dos dados de 1,55 GB no disco: 839 GB Contém 34.362 arquivos 1.955 pastas
Esse material é escrito uma vez e lido zilhões de vezes durante a criação do projeto. Faz todo o sentido gastar um pouco de energia da CPU para descompactá-lo e economizar talvez metade do seu precioso espaço SSD.
fonte
Você precisa fazer o benchmark duas vezes para saber. Comprimido. Descomprimido. Esqueça o desgaste dos SSDs. Você precisa de um SSD e uma CPU rápidos, para que não haja gargalos.
Um SSD de 512GB custa 50 dólares hoje em dia. O acesso mais rápido ao disco para mim até agora é usar o Linux sempre que possível e o mecanismo de fila de disco LIFO. Em vez de CFQ.
O Windows 10 cria atividade infinita de disco com 12 GB de RAM instalada no meu laptop. O mint mint carrega e quase zero acesso ao disco ocorre depois. A menos que você o inicie. O Windows apenas tem uma maneira de se manter ocupado sem tarefas visíveis.
fonte