【问题标题】:what is the tradeoff between using larger dynos vs more dynos on Heroku在 Heroku 上使用更大的测功机和更多的测功机之间的权衡是什么
【发布时间】:2026-01-30 05:45:01
【问题描述】:

在运行 Unicorn 工作程序的 Heroku Rails 4.2 网络应用程序中,每个工作程序需要大约 230MB,我们可以为每个“1X”Heroku dyno 运行 2 个,或者每个“2X”Heroku dyno 运行 4 个。 CPU 要求非常低。

如果我们需要 8 个工作人员来处理我们的流量,使用四个“1X”测功机与两个“2X”测功机来获得 8 个工作人员的技术/性能权衡是什么?

(两年前,Heroku 路由到 dyno 的方式有一个广为人知的问题,我记得这表明具有更多工人的大型 dyno 效果最好,因为请求被路由到“忙碌”的 dyno 的可能性较小. 但我没有找到任何关于何时最好使用更大的测功机和更多的测功机的当前指南。)

【问题讨论】:

    标签: ruby-on-rails heroku


    【解决方案1】:

    据我所知,您已经提到 Heroku 路由器不知道也不关心特定测功机的负载,而是通过随机选择算法发送请求。 https://devcenter.heroku.com/articles/http-routing

    因此很可能会看到许多连续的请求都发送到同一个测功机。我正在用我当前的应用程序观察这种行为。

    但在您的情况下,如果一个工作人员需要 230MB,那么您不能在 Standard-1X 测功机中使用 2 个工作人员,因为他们的最大内存为 512M。所以我认为你绝对应该和 3-4 名工人一起使用 2X 测功机。 2X dynos 最多可以使用 1GB 内存。

    【讨论】:

    • 好吧,我对 Rails 了解不多,但是对于 Java 案例,如果您的应用程序需要 460MB 堆大小,则您无法在 1X 机器上运行它,因为还有其他开销,例如操作系统、本机内存等。这就是为什么我写了他/她不能使用 1X 和 2 个工人。
    最近更新 更多