我們正在做的負載測試了一些良好的進展和縮放的阿卡應用程序,但我們看到scala.concurrent.forkjoin.ForkJoinPool.scan 20%()到來作爲visualvm中自我時間的20%左右的第二高熱點。自我時間(CPU)列僅顯示其中的一小部分(小於自我時間列值的1%)。阿卡 - 負載測試期間,forkjoinpool.scan在cpu時間
我懷疑這意味着阻止或上下文切換都可能存在問題,但我也不太清楚 - 任何一個可以深入瞭解? 如果是上下文切換,我猜測調度器吞吐量調整到更高的數字可能會使我們獲得收益,否則如果它是由阻塞引起的,我們需要再讀一遍代碼。
任何瞭解不勝感激。
我會通讀這篇文章,因爲它提供了一些很好的見解,說明爲什麼你可能會看到很多忙碌的等待時間與FJP。你可能確實有一些阻塞代碼會導致速度變慢,從而導致空閒的FJP線程比預期的掃描更多的工作。 https://groups.google.com/forum/m/#!topic/akka-user/6HKTvw4yBnU – cmbaxter
謝謝 - 線程是什麼引起我送行認爲必須有一些停放線程 - 這和掛鐘時間與該實際使用的CPU。這是一個有用的肯定+1 – JasonG