Trocar I / O?
Como é um desses tópicos? Meu primeiro instinto é que o sistema está esperando algum recurso disponível, talvez discos? trocar?
Atraso interno?
O outro pensamento é que gpg
pode ter alguns atrasos embutidos apenas para aumentar a despesa de criar chaves, e assim os atrasos estão causando sua trégua no uso da CPU.
Estes seriam uma forma de um NOOP, onde o algoritmo de geração de chaves espera inativo por algum período de tempo para passar antes de prosseguir.
Além disso, você pode obter informações sobre o que está acontecendo executando 1 dos processos gpg
usando strace
para ver quais chamadas de sistema estão sendo feitas.
Exemplo
$ strace gpg --encrypt --recipient "[email protected]" "..."
Buffer?
A outra coisa que eu suspeitaria é de buffer. Talvez haja um buffer em seu pipeline que está sendo exaurido mais rápido do que pode ser reabastecido, portanto, os processos gpg
estão sendo carentes de trabalho para fazer.
Você pode usar uma ferramenta como pv
para descobrir esse problema, colocando-o após a saída de find
.
Exemplo
$ find .... | sort | pv | ...
Eu olharia para essas opções:
-a, --average-rate
Turn the average rate counter on. This will display the average
rate of data transfer so far.
-b, --bytes
Turn the total byte counter on. This will display the total
amount of data transferred so far.