有多少CPU核心有一个heroku dyno?

时间:2013-04-09 19:36:58

标签: heroku cpu celery cpu-cores

我正在使用Django和Celery 3.0.17,现在试图找出默认运行的芹菜工人数量。

this link我明白(没有修改此配置)工作者数量当前必须等于CPU核心数量。这就是我需要前者的原因。我无法通过Google搜索或搜索heroku's dev center找到正式答案。我认为这是4核,因为我看到4个并发连接到我的AMQP服务器,但我想确认一下。

谢谢,

Ĵ

3 个答案:

答案 0 :(得分:27)

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

答案 1 :(得分:10)

根据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 dynos有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

答案 2 :(得分:0)

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都告诉我nproc为“ 8”,表示4个CPU,但是heroku puma文档警告说,自从Standard以来,这些CPU已与其他用户共享。 dynos是多租户。

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