【问题标题】:Guideline to Configure max threads in Play framework在 Play 框架中配置最大线程的指南
【发布时间】:2014-05-30 10:14:53
【问题描述】:

我们使用 Playframework 1.x。

我们没有触及线程池大小,我们使用默认值(nb 个处理器 + 1)。我们的生产服务器有 4 个核心处理器,我假设一次有 5 个线程。

为了使用,我们需要一次至少提供 100 个线程。我们可以将线程池​​大小增加到 100,这会产生什么问题吗?

【问题讨论】:

    标签: java multithreading playframework-1.x


    【解决方案1】:

    在我的项目中,我们使用大约 30 个线程池来服务大约 100 个并发。 Play 1.x 运行速度非常快,因此可以在下一个请求处理之前释放线程。

    但是你应该对你的代码进行负载测试......我认为如果你将线程池增加到 100 是不好的。

    顺便说一句,您应该按照 Play 的建议使用异步作业来实现您的应用程序:http://www.playframework.com/documentation/1.2.7/asynchronous

    【讨论】:

      【解决方案2】:

      Play 是围绕尽可能快地处理短请求的想法构建的,因此能够保持线程池尽可能小。想要一个小池的主要原因是保持资源消耗低而不是浪费。

      Play and Java can happily run with a higher thread pool,例如 100 或 1000(尽管您的服务器可能并不总是支持它,some Linux distributions for example 对每个用户每个应用程序的线程数有固定限制),但是建议分析您的问题,看看你是否真的需要那个大池。

      在大多数情况下,需要一个大池意味着您必须有许多阻塞线程,并且应该研究 Play 的异步功能,或者您有一个尝试同时处理许多事情的操作,当切成更小的线程时性能会更好件。 如果一个请求导致服务器上的长阻塞线程,这通常意味着它也会导致用户端的长阻塞接口。

      【讨论】:

        猜你喜欢
        • 2011-08-11
        • 2015-10-23
        • 1970-01-01
        • 2014-05-16
        • 1970-01-01
        • 1970-01-01
        • 2010-09-24
        • 2014-03-18
        • 1970-01-01
        相关资源
        最近更新 更多