首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Play framework [2.5.0 java] -阻塞的netty-event-loop线程导致超时

Play framework [2.5.0 java] -阻塞的netty-event-loop线程导致超时
EN

Stack Overflow用户
提问于 2016-03-22 06:20:49
回答 1查看 742关注 0票数 3

我们刚刚从Play framework 2.4.3升级到2.5.0 (java)。然而,在升级之后,我们的测试在几分钟后开始超时。在升级之前,他们运行了一个小时,没有出现错误。

看起来有些线程被阻塞了,系统只是停止响应。

我使用Yourkit java profiler在我的机器上本地运行了一个较小版本的负载测试。最初,启动了16个netty-event-loop线程。大约一分钟后,我可以看到他们已经开始屏蔽:

当它们阻塞时,我开始在负载测试中获得超时。当我关闭测试时,这些线程似乎恢复了:

我希望这里有人能帮助我们确定这是什么原因。除了升级到Play 2.5所需的更改外,我们根本没有修改我们的代码。

下面是我们在application.conf中使用的Akka线程池配置

代码语言:javascript
复制
akka {
  fork-join-executor {
    # The parallelism factor is used to determine thread pool size using the
    # following formula: ceil(available processors * factor). Resulting size
    # is then bounded by the parallelism-min and parallelism-max values.
    parallelism-factor = 3.0

    # Min number of threads to cap factor-based parallelism number to
    parallelism-min = 8

    # Max number of threads to cap factor-based parallelism number to
    parallelism-max = 64

    # Setting to "FIFO" to use queue like peeking mode which "poll" or "LIFO" to use stack
    # like peeking mode which "pop".
    task-peeking-mode = "FIFO"
  }
}

探查器显示有关被阻止线程的以下信息:

有谁能提供一些关于我们可能做错了什么的见解吗?谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2016-03-22 18:39:04

这个问题似乎已经为我们解决了。我们在模板和控制器中使用Deadbolt-java 2.5.0-SNAPSHOT进行授权。我们在日志中看到了一些与Deadbolt相关的超时消息。

因此,我们从项目中完全删除了Deadbolt,现在负载测试的运行速度比以往任何时候都要快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36142724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档