To figure out if you have a CPU problem, I'd take a look at etop/dtop/entop and see if there are processes consuming a lot of reductions. If they're consuming these reductions in proportion to receiving a lot of input messages then they may be fine, but you can look at having multiple processes handle these messages in parallel. If they're just consuming lots of reductions, then check to see if the code in those processes can be made more efficient.
Björn-Egil, Erlang/OTP:
Eprof: Regarding the profiling guide, it states that *eprof* has
"significant slowdown", this is *untrue* and should be revised. *note to
self* It has some slowdown, (pulling some data from memory), I would say
2 - 6 times. Eprof also has very low impact on multiple schedulers.
Eprof does not produce a callgraph but it will tell you how much time
you spend in specific functions which is very helpful.