我正在测试AWS ECS上的akka http服务。每个实例都添加到负载均衡器中,负载均衡器定期向健康检查路由发出请求。由于这是一个测试环境,我可以控制没有其他流量进入服务器。我注意到这表明“默认调度员”数量持续增加的调试日志:Akka http服务器调度程序编号不断增加
[DEBUG] [01/03/2017 22:33:03.007] [default-akka.actor.default-dispatcher-41200] [akka://default/system/IO-TCP/selectors/$a/0] New connection accepted
[DEBUG] [01/03/2017 22:33:29.142] [default-akka.actor.default-dispatcher-41196] [akka://default/system/IO-TCP/selectors/$a/0] New connection accepted
[DEBUG] [01/03/2017 22:33:33.035] [default-akka.actor.default-dispatcher-41204] [akka://default/system/IO-TCP/selectors/$a/0] New connection accepted
[DEBUG] [01/03/2017 22:33:59.174] [default-akka.actor.default-dispatcher-41187] [akka://default/system/IO-TCP/selectors/$a/0] New connection accepted
[DEBUG] [01/03/2017 22:34:03.066] [default-akka.actor.default-dispatcher-41186] [akka://default/system/IO-TCP/selectors/$a/0] New connection accepted
[DEBUG] [01/03/2017 22:34:29.204] [default-akka.actor.default-dispatcher-41179] [akka://default/system/IO-TCP/selectors/$a/0] New connection accepted
[DEBUG] [01/03/2017 22:34:33.097] [default-akka.actor.default-dispatcher-41210] [akka://default/system/IO-TCP/selectors/$a/0] New connection accepted
这种趋势不会反转,并起身到几万很快。这是正常行为还是指示问题?
编辑:我已经更新了日志片断表明调度线程数远远偏离了我所期望的。
编辑#2:这里是健康检查路线代码:
class HealthCheckRoutes()(implicit executionContext: ExecutionContext)
extends LogHelper {
val routes = pathPrefix("health-check") {
pathEndOrSingleSlash {
complete(OK -> "Ok")
}
}
}
感谢您的评论,我的恐惧也是线程泄漏。我会尝试在本地重现并执行线程转储。 – novon
有趣的是,我无法在当地复制。默认的调度程序线程数始终低于合理的数字(〜20)。也许这与负载均衡器运行状况检查使用的http请求机制有关。 – novon