We have made significant progress in load testing and scaling of the akka application, but we see scala.concurrent.forkjoin.ForkJoinPool.scan (), which appears as the second highest access point for about 20% of the battery life in VisualVM. The Self time column (CPU) says only part of this (less than 1% of the self time column value).
I suspect that this means blocking or context switching is potentially problematic, but I'm not sure: can anyone give an idea? If this is a context switch, then I assume that setting the dispatcher's bandwidth to a larger number can lead to increased profits, otherwise, if it is caused by a lock, we will need to read a little more code.
Any insight is greatly appreciated.
source share