Questão Se você ativar a compactação NTFS, por que a carga da CPU é tão baixa? Ele usa instruções SSE4.2 nos bastidores?


Eu tenho um Hex-core Xeon X5650 com o Windows 7 x64.

Atualmente estou fazendo a compressão simultânea de três discos rígidos NTFS, cada 2 TB, com os comandos:

compact e: /i /c /s
compact f: /i /c /s
compact g: /i /c /s

Está obtendo uma compactação razoável: até 40: 1 e normalmente 2: 1.

A carga da CPU resultante é de apenas cerca de 3%

Alguém sabe por que a carga da CPU é tão baixa?

Alguém sabe se o kernel de compactação / descompactação em tempo real do Win7 está usando SSE3 ou SSSE3 ou SSE4.2 instruções nos bastidores?


4


origem


Também devo acrescentar: o VMware é executado como um cão, se os arquivos que ele usa para seu disco rígido virtual estiverem compactados com NTFS. Parece estar bem na maioria dos outros lugares do sistema. - Contango


Respostas:


Eu esperaria que o uso da CPU fosse tão baixo devido a vários fatores, mas em primeiro lugar, tenha em mente que o algoritmo de compactação é projetado para velocidade, em vez de altas taxas de compactação.

O problema fundamental aqui é se você está compactando milhares e milhares de arquivos pequenos ou vários GB de arquivos enormes.

Se você estiver compactando arquivos com menos de 2MB, eu esperaria que a maior parte do tempo gasto para compactar os arquivos seja ocupada nas operações necessárias para localizar um arquivo no sistema de arquivos, obter o disco rígido para fornecer os dados e depois gravar os arquivos compactados. dados de volta, em seguida, repita com o próximo arquivo minúsculo. O algoritmo de compressão provavelmente pode lidar com cerca de 40-50MB / s em uma máquina moderna (eu esperaria, mas não tenho certeza disso) e assim os tempos de transferência e busca de discos rígidos são realmente os fatores limitantes para esses arquivos. ser quase nulo.

Para arquivos maiores, é quase certo que você esteja vendo um uso maior da CPU. Eu certamente vejo pelo menos um núcleo pop até cerca de 50% de uso da CPU (cerca de 8-10% da CPU total no meu processador de 8 núcleos) quando eu digo para comprimir um grande diretório no meu sistema ...

Eu realmente acho que os tempos de busca do disco rígido são o seu problema aqui, caso contrário você precisa olhar especificamente para qual enquanto os núcleos estão sendo trabalhados durante a compactação, pode ser que a rotina de compactação só possa ser usada por um thread de cada vez, embora eu duvido que esse seja o caso.


4



Obrigado pela resposta. Eu acho que o gargalo é quase inteiramente no HD, o que significa que a compressão provavelmente irá acelerar as coisas (não atrasar as coisas). A chave é ter uma CPU que suporta algo como SSE4.2 para compressão acelerada por hardware. - Contango


Sim, o novo SSE4.2 conjunto de instruções no Intel i7 e Intel Xeon X5650 pode ser usado para acelerar a compactação. Dado que o uso da minha CPU é de 3% ao mesmo tempo, comprimir três discos rígidos de 2 TB, o Win7 é quase certamente usando SSE4.2 nos bastidores para compactação no nível do setor NTFS.

Vejo Economia de energia com compactação GZIP baseada em hardware, Tony Summers et. al., Grupo de Produtos AHA, Comtech EF Data Corporation.


3





Não, não, não, há noSSE4 envolvido. Nenhuma das instruções do SSE4 pode auxiliar o método LZ (w / 77) usado pelo NTFS. Seu disco é muito lento para saturar a CPU com a compactação, que em geral é boa - você pode viver com arquivos de disco compactado. Os problemas começam quando você faz pequenas alterações em arquivos enormes - ele irá e relerá e comprimirá novamente todos os arquivos


3