💡
原文英文,约3700词,阅读约需14分钟。
📝
内容提要
Heroku发布Router 2.0,新增HTTP/2等特性,但Puma应用响应时间变长。调查发现问题出在Puma的keepalive机制,禁用后性能改善。Heroku建议用户调整Puma配置以优化响应时间。
🎯
关键要点
- Heroku发布Router 2.0,新增HTTP/2等特性。
- 部分基于Puma的应用在启用Router 2.0后响应时间变长。
- 问题源于Puma的keepalive机制,禁用后性能改善。
- Heroku建议用户调整Puma配置以优化响应时间。
- Router 2.0在高负载情况下表现不佳,导致请求超时。
- Puma的keepalive机制导致连接频繁关闭,影响性能。
- Heroku团队通过测试发现禁用keepalive可以改善响应时间。
- Heroku提供了禁用keepalive的选项以解决问题。
- 建议用户增加线程和工作进程以提高Puma的并发处理能力。
- 该问题在其他语言和框架中未出现,表明是Puma特有的问题。
❓
延伸问答
Heroku的Router 2.0有哪些新特性?
Heroku的Router 2.0新增了HTTP/2、性能改进和可靠性增强等特性。
为什么Puma应用在启用Router 2.0后响应时间变长?
Puma的keepalive机制导致连接频繁关闭,影响了性能,禁用后性能得以改善。
Heroku对Puma用户有什么优化建议?
Heroku建议用户调整Puma配置,增加线程和工作进程,并禁用keepalive以优化响应时间。
Router 2.0在高负载情况下表现如何?
在高负载情况下,Router 2.0表现不佳,可能导致请求超时。
Puma的keepalive机制是如何影响性能的?
Puma的keepalive机制导致连接频繁关闭,增加了处理请求的时间,从而影响性能。
如何在Heroku上禁用Puma的keepalive?
可以通过设置enable_keep_alives为false来禁用Puma的keepalive。
➡️