Unicorn Rails - 在生产模式下启动时占用100%的CPU

时间:2011-08-09 09:53:02

标签: ruby ruby-on-rails-3 unicorn

我们正在使用Unicorn_Rails + nginx。 它在我的系统中的开发模式和生产模式下运行良好(4GB Ram,Intel(R)Core(TM)2 Duo CPU P8600 @ 2.40GHz) 我能够在本地系统中启动10名工人,但无论如何在生产中无法启动超过2名工人 有时它可以工作,但需要等待15-20米 启动unicorn_rails时,它始终占用99.6%的CPU

Intel(R)Xeon(R)CPU E5507 @ 2.27GHz 但它挂在亚马逊(m1.small实例) 1.73 GB RAM

我发现没有人谈论在任何地方使用unicorn_rails的慢启动......

1 个答案:

答案 0 :(得分:2)

Rails启动是CPU限制的,它(几乎)总是一直使用100%的CPU。看起来你试图在该实例上加载的负载太大;每个CPU核心只需要1个工作线程,m1.small只有一个。

当您尝试启动10个工作程序时,它们共享CPU和I / O,并且许多I / O请求总是会降低子系统的速度。您可以在preload_app true中添加config/unicorn.rb条款;这应该会缩短启动时间,但在这样的实例上你真的不需要10个工作人员。