【问题标题】:How many CPU cores does a Heroku Dyno have?Heroku Dyno 有多少个 CPU 内核?
【发布时间】:2013-04-01 09:58:49
【问题描述】:

我正在使用带有 Celery 3.0.17 的 Django,现在试图弄清楚默认运行了多少个 celery worker。

来自this link 我了解到(未修改此配置)工作人员的数量当前必须等于 CPU 内核的数量。这就是为什么我需要前者。我无法通过谷歌搜索或搜索Heroku's dev center 找到官方答案。我认为这是 4 个核心,因为我看到 4 个并发连接到我的 AMQP 服务器,但我想确认一下。

【问题讨论】:

    标签: heroku cpu celery cpu-cores


    【解决方案1】:

    CPU 数量未公布,可能会发生变化,但您可以在运行时通过运行grep -c processor /proc/cpuinfo 了解。

    【讨论】:

    • 当我在我的 1x heroku dynos 中运行 grep -c processor /proc/cpuinfo 时,结果是 4
    • 对我来说,X1 dyno 是 8
    • 截至当前日期,Standard-1X 获得 8 个,Standard-2X 获得 8 个,Performance-M 获得 2 个,Performance-L 获得 8 个。
    【解决方案2】:

    根据https://blog.heroku.com/archives/2014/2/3/heroku-xl

    |       | 1X Dyno      | Performance Dyno  |
    |-------|--------------|-------------------|
    | RAM   | 512 MB       | 6 GB              |
    |       | 1x - 4x      | 40x (8 CPU cores) |
    | Price | $0.05 / hour | $0.80 / hour      |
    

    2X dynos 也有 4 个核心:

    $ heroku run --size=2X grep -c processor /proc/cpuinfo --app app-name
    Running grep -c processor /proc/cpuinfo on app-name... up, run.3685
    4
    

    但是 PX 测功机有 8 个核心:

    $ heroku run --size=PX grep -c processor /proc/cpuinfo --app app-name
    Running grep -c processor /proc/cpuinfo on app-name... up, run.4731
    8
    

    【讨论】:

    • 这个答案现在已经过时了。对 4 种当前 dyno 类型运行相同的 cpuinfo 测试可以得到: Standard-1x: 8 Standard-2x: 8 Performance-M: 2 Performance-L: 8
    【解决方案3】:

    heroku puma documentation 建议您可以通过在测功机上运行 nproc 来发现这一点:

    因此,例如,要查看 performance-m 上有多少,正在运行:

    $ heroku run bash --size=performance-l
    $ nproc
    8
    

    然后除以2,因为:

    nproc 返回的值除了物理内核之外还包括“超线程”,这两者的组合称为 vCPU 计数。 Heroku 上使用的所有物理核心都有一个超线程,因此可以将物理核心的“真实”数量除以 2。

    这意味着performance-l 有 4 个 CPU。

    当我在 performance-m 上执行相同操作时,我得到 2,这意味着实际上只有 1 个 CPU。

    Standard-1x 和 Standard-2x 都有 nproctell me "8",意思是 4 个 CPU,但 heroku puma 文档警告说,这些 CPU 与其他用户共享,因为标准 dyno 是多租户。

    free、hobby、standard-1x 和 standard-2x dynos 的 nproc 值是正确的,但这些内核在容器中运行的多个应用程序之间共享。虽然这些 dyno 的 nproc 都将返回 8,但最好假设一次只能执行一个进程。

    【讨论】:

      猜你喜欢
      • 2016-04-17
      • 2011-01-16
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 2017-01-25
      • 1970-01-01
      相关资源
      最近更新 更多