如何讓Play框架使用機器上的所有64個核心。無論我配置什麼,我都無法讓我的Play網絡應用程序使用全部64個內核。是否有一個我應該關注的具體設置?請幫忙!不使用全部64核心的播放框架
目前,我有以下配置:
play {
akka {
event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
loglevel = WARNING
actor {
default-dispatcher = {
fork-join-executor {
parallelism-factor = 10.0
parallelism-max = 64
}
}
}
}
}
internal-threadpool-size=64
iteratee-threadpool-size=64
當我看機器處理,我可以看到,只有一個處理器核心的第三被利用。是否還有其他設置可以使用所有64個內核?
我們有一個WebSocket端點,在我們的Play控制器中的一個非阻塞模式下,使用WebSocket.Async調用。爲了加載測試這個WebSocket端點,我有一個使用Akka來動態創建多個Actor實例的簡單客戶端。這些Actor實例中的每一個都會創建一個新的WebSocket連接併發送幾千條消息。
通過單個WebSocket連接發送的消息數量和Actor實例總數都是可配置的。這樣,我可以真正加載測試Play框架公開的WebSocket端點。
但無論我做什麼,我都沒有看到服務器利用了它的所有內核。這實際上降低了我們的表現。有關Play框架中的哪些配置可以調整以確保在重負載下使用所有64個內核的任何建議?
這是我看到的時候玩框架負載可達(從日誌文件):
application.conf的合併:6,reference.conf:6 發揮{ #application.conf的合併:7 ,reference.conf:8個 阿卡{ #application.conf:9 日誌級別=警告 #application.conf:8 「事件處理程序」= [ #application.conf:8 「akka.event.slf4j。 Slf4jEventHandler「 」 #include application.conf:10,reference.conf:12 演員{ #application.conf:11 「默認調度員」{ #application.conf:13 「的fork-join-執行」{ #application.conf:15 「並行因子」= 2 # application.conf:14 「並行分鐘」= 8 #application.conf:16 「並行最大」= 256 } #application.conf:12 執行人= 「叉加入執行人」 } #reference.conf:13 retrieveBodyParserTimeout =「1秒」 } }}
有什麼用我的播放器導入下面的語句呢?導入play.api.libs.concurrent.Execution.Implicits._? – sparkr