1 Heroku dyno 上有多少个 Rails 应用程序?

Posted

技术标签:

【中文标题】1 Heroku dyno 上有多少个 Rails 应用程序?【英文标题】:How many Rails apps on 1 Heroku dyno? 【发布时间】:2011-01-16 02:02:20 【问题描述】:

我只是找不到一个 dyno 可以在 heroku 上托管多少应用程序?

我打算托管很多流量很小的小应用程序。

感谢您的回答

【问题讨论】:

【参考方案1】:

Dynos 是根据每个应用程序计算的。

但是,这并不意味着您需要购买 3 个 dynos 才能运行 3 个应用程序。 您可以创建 3 个应用程序,每个应用程序具有 1 个 dyno。

【讨论】:

太棒了!你怎么知道测功机什么时候变得太小了? 当你的应用开始抛出 504 错误docs.heroku.com/errors#backlog-too-deep-http-504 你不能用一个测功机来操作一个真实的站点,因为它会闲置。 不真实。您可以使用 Heroku Scheduler(或其他一些服务)来运行执行 HTTP GET 请求并保持您的测功机分配给您的应用程序的任务。如果它每 10 分钟运行一次,它就不会闲置。 @Zubzob heroku.com/policy/tos -- 第 4.4 节。所以我需要把这个应用程序放在另一个堆栈上。【参考方案2】:

每个 Dyno / subdomain.heroku.com 一个应用程序。

【讨论】:

该死的意思是,如果我想托管 2 或 3 个流量很小的小应用程序,我将不得不支付 3 个 dynos 的费用:/ 我想我会去 VPS 完全正确.. 或使用 Heroku 的 n 免费测功机 - 如果它们像您说的那么小,它们应该适合 free 之一。但我认为 VPS/Root 是更好的主意。 谢谢!顺便说一句,你能给我推荐一些好的(除了 slicehost)吗? 第一个dyno PER APP是免费的。因此,如果您的应用程序很小/流量很少,您无需为任何测功机付费。但是,如果您无论如何都想使用 VPS,我会说 6Sync 或 Linode。就服务器质量/规格/性能和对金钱的支持而言,这些无疑是最好的。 迈克尔说了什么。见devcenter.heroku.com/articles/how-much-does-a-dyno-cost【参考方案3】:

这里有一些解释:http://docs.heroku.com/performance#backlog-too-deep

【讨论】:

【参考方案4】:

我相信您可以在 Web dyno 中启动另一个 Web 进程。我已经和工人一起做了。一名工人测功机有 3 个子流程。每个都是 rails 应用程序的副本,并且每个都在数据库上独立运行。 我不确定您如何设法启动正确的应用程序...而且您需要一个控制器应用程序。 我不想说这是不可能的,因为我不相信这种说法是有建设性的。我会说,以每月 34 美元的额外测功费生成一个新应用程序会更好地利用您的时间/金钱。

另一个问题。每个 web dyno 都允许有限的内存量,并且 rails 并不完全以内存轻量而闻名。当我产生子工作者时,我遇到了很多内存问题。如此之多,以至于我最终推出了该功能。如果我工作一个下午来尝试“调整”约束,那么我花在老板身上的钱比 4 个月额外的 dyno 还多,所以我必须权衡一下。

无论如何...这就是我分叉工人的方式

require 'heroku-api'

...

  def self.fork_workers(iDesired = 5, iQueue = nil)
    cmd = "rake jobs:work WORKER=MY_SERF"
    cmd += " QUEUES=#iQueue" if(iQueue)
    p cmd  
    if(RUBY_PLATFORM["mingw32"].nil?)  #DON'T WORK ON WINDOWS
      currentCount = Rush::Box.new.processes.filter(:cmdline => /#cmd/ ).size;
      iDesired -= currentCount;
      if(iDesired > 0)
        iDesired.times  Rush::Box.new[Rails.root].bash( cmd, :background => true ) 
      elsif(iDesired < 0)

      end
    end    
  end

最后一点: 如果单独放置一个小时,一个测功机应用程序将进入睡眠状态......您的用户会在醒来时感受到延迟。 https://devcenter.heroku.com/articles/dynos#dyno-idling

【讨论】:

以上是关于1 Heroku dyno 上有多少个 Rails 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Procfile 在 Heroku 上禁用 Rails web dyno?

Heroku 免费帐户,一次性 dynos

单个 Heroku Web Dyno 到底是啥?

在 Heroku 上托管一个静态网站需要多少台测功机?

Rails 6.1:Heroku 上的作业将使用 Async 而不是 Sidekiq

使用 2 个 Dynos 在 Heroku 上运行 Discord.js 机器人会触发 2 个事件。每个 websocket 连接 1 个