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

4

Eu tenho um Xeon X5650 com o Windows 7 x64.

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

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

Sua 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?

    
por Contango 29.10.2011 / 15:14

3 respostas

4

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 foi 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 gigantescos.

Se você estiver compactando arquivos com menos de 2 MB, eu esperaria que a maior parte do tempo gasto para compactar os arquivos fosse ocupada nas operações necessárias para localizar um arquivo no sistema de arquivos, obter o disco rígido para fornecer os dados e escrevendo os dados comprimidos de volta, depois 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 especificamente analisar quais núcleos estão sendo trabalhados durante a compactação, pode ser que a rotina de compactação só possa ser usado por um thread de cada vez, embora eu duvido que este seja o caso.

    
por 29.10.2011 / 16:17
3

Sim, a nova instrução SSE4.2 definida no Intel i7 e Intel O Xeon X5650 pode ser usado para acelerar a compactação. Dado que o uso da minha CPU é de 3% e, simultaneamente, compactando três discos rígidos de 2 TB, o Win7 certamente está usando o SSE4 .2 nos bastidores da compactação no nível do setor NTFS.

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

    
por 29.10.2011 / 18:23
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 todo o arquivo

    
por 31.01.2012 / 16:56