我们在最近部署的 Rails 4.0 (Ruby 2.0.0) 应用程序上看到了一些奇怪的行为。我不在 Heroku 上,而是在 EC2 实例上。该应用程序使用 puma 和 hipache 来处理请求。
在大多数情况下,该应用程序非常快,平均响应时间约为 20 毫秒。但是,一旦达到一定数量的 RPM,响应时间就会急剧增加。我正在使用 New Relic 来跟踪响应时间,这是一个图表:
http://i.stack.imgur.com/pAIgT.png
你可以看到吞吐量甚至没有那么高,但是到了一定程度,有些东西正在崩溃。我不是 puma 配置方面的专家,但我尝试过使用不同数量的工人和线程,但似乎根本没有帮助。
我们在 EC2 上有一个大容量应用程序,在 Rails3/Ruby1.9.3/Unicorn 上运行良好,我很遗憾没有使用我所知道的工作,但在这一点上,我不能回到 Rails3,所以如果这正在响起钟声与任何人在那里我很想尝试一些事情。