What does 1 of the threads look like? My first instinct is that the system is waiting for some resource to become available, perhaps disks? swap?
The other thought is that
gpg may have some delays built in for no other reason than to add to the expense of creating keys, and so the delays are causing your lull in CPU usage.
These would be a form of a NOOP, where the key generation algorithm waits idle for some period of time to pass before proceeding.
Also you can gain insight into what's going on by running 1 of the
gpg processes using
strace to see what system calls are being made.
$ strace gpg --encrypt --recipient "[email protected]" "..."
The other thing I would be suspicious of is buffering. Perhaps there is a buffer in your pipeline that is being exhausted faster than can be replenished, so the
gpg processes are being starved for work to do.
You could use a tool such as
pv to ferret out this issue by putting it after the output from
$ find .... | sort | pv | ...
I'd look at these switches:
Turn the average rate counter on. This will display the average
rate of data transfer so far.
Turn the total byte counter on. This will display the total
amount of data transferred so far.