We're making some good progress in load testing and scaling an akka application but we're seeing scala.concurrent.forkjoin.ForkJoinPool.scan() coming up as the second highest hotspot around 20% of self time in visualvm. The Self time (CPU) column says only a fraction of that (less than 1% of the value of the self time column).
I suspect this means blocking or context switching are potentially problematic but I'm not too sure - can any one give insight? If it's context switching I'm guessing tuning dispatcher throughput to a higher number may net us gains, otherwise if it's caused by blocking we'll need to read through the code some more.
Any insight greatly appreciated.