【问题标题】:Slow deployment for a large Rails 3 application using Ruby 1.9.2使用 Ruby 1.9.2 的大型 Rails 3 应用程序部署缓慢
【发布时间】:2011-04-01 16:53:46
【问题描述】:

存在三个问题。

  1. 与 rake 一样,运行 capistrano 任务非常缓慢。我们需要在每次部署时做几件事,比如重新启动 DelayedJob,确保 Thinking Sphinx 是最新的,等等......我已经读过 Ruby 1.9 存在一个问题,即必须检查每个要求的所有路径和这有望很快得到解决。但是 cap deploy 有什么解决方法吗?

  2. Passenger 实例启动也很慢,可能是同样的 Ruby 1.9 路径问题,但有解决方法吗?

  3. Gemfile.lock 会在每次 rake 和 cap 调用时更新。变化的总是同样的事情。 +/- net-scp

有问题的应用程序称为 Open Active Democracy,位于此处https://github.com/rbjarnason/open-active-democracy

【问题讨论】:

    标签: ruby-on-rails ruby deployment ruby-1.9 ruby-1.9.2


    【解决方案1】:

    3) 罪魁祸首肯定是 Gemfile.lock,它需要永远更新 gemfile,而且它不应该每次都需要更新。

    我会尝试手动在服务器上进行捆绑安装,看看发生了什么,也许您没有将捆绑文件放在 capistrano 的永久位置?您也可以尝试将 net-scp 添加到您的 Gemfile 以快速修复。

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

    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 以加快加载不那么前卫的文件。

    【讨论】:

      【解决方案2】:

      当您运行一些具有不同角色的服务器时,部署需要一段时间是正常的。我的一个较大的应用程序最多需要 10-15 分钟才能部署。用户应该注意的唯一一件事是乘客重新启动时,这与您的应用程序环境加载所需的时间一样长(我认为对此无能为力)。

      可能发生的最糟糕的事情是,如果您的互联网在长时间部署期间中断,这可能会使事情处于不良状态。这件事发生在我身上,这促使我写信 captivate 以防止它再次发生......

      【讨论】:

        【解决方案3】:

        更快的替代方法是使用whiskey_disk,被描述为“令人尴尬的快速部署”。它简单有趣,可能正是您所需要的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-15
          相关资源
          最近更新 更多