The other issue (a small number of processes accepting work) is a good idea though I think, to get the number of processes doing actual work closer to the number of cores.
After all, even if it is a 'small multiple' it is a divider when it comes to how much hardware you need and less hardware=better.
The DB may be a bottleneck, it may not be, that very much depends on the workload of the server.