2011-08-09 37 views
6

我们正在使用Unicorn_Rails + nginx。 在我的系统(4GB Ram,Intel(R)Core(TM)2 Duo CPU P8600 @ 2.40GHz)开发模式和生产模式下运行良好 我能够在本地系统启动10名工人,但无法启动超过2,在生产 任何情况下,有时它的工作原理,但需要等待15-20 MTS 它采用99.6%的CPU所有的时间,同时启动unicorn_railsUnicorn Rails - 在生产模式下启动时需要100%的CPU

英特尔(R)至强(R)CPU E5507 @ 2.27GHz 但它挂在亚马逊(例如的m1.small) 1.73 GB RAM

我觉得没有一个使用unicorn_rails任何地方谈论启动慢...

+0

你知道了吗?我也有同样的问题。 – Morten

回答

1

Rails启动是CPU限制的,它将(几乎)始终使用100%的CPU。看起来你试图放在那个实例上的负载太大了;每个CPU内核只需要1个工作者,而m1.small只有一个。

当您尝试启动10个工作人员时,他们共享CPU和I/O,并且大量的I/O请求始终会降低子系统的速度。您可以在您的config/unicorn.rb中添加preload_app true条款;这应该会缩短启动时间,但在这种情况下,您确实不需要10名工作人员。

+0

感谢您的即时回复。我只是喜欢它..当然,我会尝试与preload_app真实。 btb我只有1个工人在unicorn.rb conf文件中配置。 –

+2

然后,这很奇怪。亚马逊实例功能不是很强大,但是启动Rails绝对不应该花费15分钟 - 对我的旧Pentium III 1.5分钟就足够了! (顺便说一下,如果你只有1个worker,preload_app不会改变任何东西)。尝试通过'strace -f'(没有守护进程)启动它,并检查一些系统调用是否比预期花费更多时间。 – whitequark

+0

没办法。它仍然是一样的。 –

相关问题