Você provavelmente descobrirá que zip
está gastando a maior parte do tempo esperando por E / S (lendo arquivos e gravando as versões compactadas) e é por isso que não está usando a quantidade de CPU que você espera. Dar prioridade extra ao processo via nice
não tem efeito sobre isso, pois a tarefa não pode usar mais tempo de CPU se não estiver sendo alimentada com dados a uma taxa que exigiria isso.
No Linux, você pode ver essa situação como uma% de idade alta como o tempo "IO Wait" na saída de top
e utilitários semelhantes, o mesmo pode ser verdade para o OSX.
Os motivos para o tempo de espera do pedido de veiculação podem incluir:
- processando muitos arquivos pequenos (muito movimento da cabeça lendo os arquivos e estruturas de diretório relacionadas)
- fragmentação de arquivos
- competindo com outras atividades nas unidades relevantes (usuários copiando / movendo / acessando arquivos, verificações AV agendadas, ...) enquanto o backup ocorre
- ler os arquivos em uma rede (uma CPU moderna pode compactar dados muito mais rapidamente do que um link de 100Mbit / s pode alimentá-los e a latência da rede exacerbará o efeito de muitos arquivos pequenos) ou empurrando os dados compactados rede (a menos que seus dados sejam excepcionalmente compactáveis, a mesma condição "zip é mais rápido que sua rede em CPUs modernas" se aplica, pois lerá suas unidades locais e processará o daat mais rápido do que pode enviar o resultado pela rede)
- contenção de rede (se o servidor com o qual você está falando tem um link de 100 Mbits e outros estão usando, isso pode ser um problema, menos ainda se ele tiver um link mais rápido, é claro)
- unidades lentas ou interfaces lentas (se alguma das unidades envolvidas estiver conectada via USB2, elas tenderão a transferir não mais do que 25Mbyte / s, às vezes mais lento, dependendo do adaptador USB usado e da contenção do barramento USB com outros dispositivos rápidos. drive interno moderno vai empurrar o dobro que se não mais para transferências em massa)
Se você quiser usar os ciclos de CPU "sobressalentes" e não puder reduzir os atrasos de IO, pode tentar usar o 7zip - isso usa muito mais tempo de CPU por bloco de dados, mas alcança melhor compactação do que zip por bastante margem também em muitos casos, reduzindo o tamanho de seus backups. Se isso será mais rápido (porque o 7zip resulta no envio de menos dados pela rede) ou mais lento (porque a complexidade computacional extra significa que a CPU pode se tornar o gargalo não os discos / sistemas de arquivos / rede) depende das especificações exatas da sua máquina.
Editar:
Uma outra coisa, algumas ferramentas relatam o uso do processo por núcleo e algumas por CPU (e algumas dependendo das configurações), e o zip geralmente é um processo encadeado. Então, se você tem uma CPU quad-core, é improvável que 5% seja "5% da CPU", ou aproximadamente 20% de um núcleo (embora possa estar saltando entre os núcleos, se for single threaded, não estar sendo executado em mais de um em um determinado instante).