itw*_*lal 1 ruby ruby-on-rails puma puma-dev
我来自 Java/Tomcat 堆栈,并且是 RoR 堆栈的新手。我试图了解有关 puma 配置的一些概念。我已经读过这篇和这篇,但我仍然不清楚工人术语。
据我所知,工作人员会导致子进程运行 puma。因此,本质上,这允许您在使用多核实例时实现并行性。但是您也可以通过启动尽可能多的 ec2 单核实例来实现相同的目的吗?
另外,如果实例不是多核,那么将工人设置为> 0是否有意义。
这里的任何信息都会对我有很大帮助。谢谢!
小智 5
在 Puma 的上下文中,工作线程和线程都用于实现并发,以便 Puma 可以处理请求,而不必总是等待先前的请求完成。良好的配置需要在工作线程数量和线程数量之间找到良好的平衡,并且需要考虑已部署应用程序的几个方面:
工人:
线程数
workers x,那么您将获得请求处理线程threads y总数x * y将多个工作线程与部署到多个 EC2 实例进行比较忽略了一部分:当将 Puma 与多个工作线程一起使用时,有一个主 Puma 进程监听端口并将每个请求路由到可用的工作进程。当您有多个 EC2 实例时,您需要以某种方式处理它们之间的负载平衡 - 对于 AWS,可能是 ELB 或 ALB。部署到多个实例和负载平衡是部署任何重要 Web 应用程序的正确方法,但这不应阻止您通过工作线程和线程更好地利用实例资源。
我建议尝试配置工作线程和线程,首先将工作线程的核心数和线程数设置为 10,然后在遇到内存使用问题或资源利用率不足时进行调整。
| 归档时间: |
|
| 查看次数: |
1283 次 |
| 最近记录: |