我有一个play(2.3.0)应用程序,它执行一些数据库查找。当有超过6个用户时,应用程序会遇到性能问题。游戏应用程序中的性能问题
我已经将这个问题缩小到一个控制器,其操作是4秒钟的睡眠。 测试客户端每500毫秒调用一次该操作。我可以看到前6个请求处理完毕,并停止几秒钟(直到睡眠4秒)并读取下一个6.
另外:当我打开7个浏览器窗口时,第7个将不会加载(等待连接)。
看着documentation它看起来像我的问题是阻止io和使用高度同步的配置文件应该解决我的问题。 因此我将此配置文件添加到了我的application.conf中,但没有任何更改。
我application.conf看起来像这样
application.context=/appname/
# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions.
# If you deploy your application to several instances be sure to use the same key!
application.secret="xxxxx"
play {
akka {
akka.loggers = ["akka.event.slf4j.Slf4jLogger"]
loglevel = WARNING
actor {
default-dispatcher = {
fork-join-executor {
parallelism-min = 300
parallelism-max = 300
}
}
}
}
}
和行动
def performancetestSleep() = Action{ request => {
Thread.sleep(4000)
Ok("hmmm good sleep")
}}
在我看来,线程池的配置被忽略。我在这里错过了什么?
Thread.sleep是一个线程阻塞操作,所以它不是很好。可能你有一个可以并行处理6个线程的cpu,你知道你的cpu有核心的数量和线程吗? – David 2015-04-06 03:34:15