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.