一个使用Ruby 1.9.2的大型Rails 3应用程序部署缓慢。

4
有三个问题。
  1. 和rake一样,运行capistrano任务非常缓慢。我们需要在每次部署时执行几项操作,例如重启DelayedJob,确保Thinking Sphinx已更新等。我已经读到了Ruby 1.9存在问题,需要在每次require时检查所有路径,希望这个问题能很快得到解决。但是,在cap deploy中是否有任何解决方法?
  2. Passenger实例启动速度也很慢,可能是相同的Ruby 1.9路径问题,但是否有任何解决方法?
  3. Gemfile.lock在每次rake和cap调用时都会更新。总是改变的是同一件事。+/- net-scp
所涉及的应用程序称为Open Active Democracy,位于此处 https://github.com/rbjarnason/open-active-democracy
3个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
1

3) 最有可能是Gemfile.lock引起的问题,更新gemfile需要很长时间,而且不应该每次都需要更新。

我建议在服务器上手动执行bundle install并查看情况,也许你没有将bundle文件放在capistrano的永久位置?你也可以尝试在Gemfile中添加net-scp以进行快速修复。

在我的生产服务器上,它看起来像这样:

user@prodmachine:/var/www/railsapp/current/.bundle# cat config 
--- 
BUNDLE_FROZEN: "1"
BUNDLE_DISABLE_SHARED_GEMS: "1"
BUNDLE_WITHOUT: development:test
BUNDLE_PATH: /var/www/railsapp/shared/bundle

2) 启动时间,构建和安装修补的1.9.2版本以获得文件加载速度的优化:

http://www.rubyinside.com/get-edge-ruby-faster-loading-ruby-1-9-2-now-4973.html

你还可以安装 ruby-1.9.2-p290 来加速加载文件,这样就不会那么刺激了。

0

当您运行有各种角色的几个服务器时,部署需要一段时间是很正常的。我较大的一个应用程序需要10到15分钟才能部署。唯一让用户注意到的事情是乘客重新启动时需要的时间,这需要加载应用程序环境所需的时间(我认为无法解决)。

最糟糕的情况是在长时间的部署过程中您的互联网断开连接,这可能会导致不良状态。这已经发生过于我,促使我编写captivate以防止它再次发生......


0
一个更快的选择可能是使用whiskey_disk,它被描述为“令人尴尬地快速部署”。它简单有趣,也许正是你所需要的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,