我正在使用Django和Celery 3.0.17,现在试图找出默认运行的芹菜工人数量。
从this link我明白(没有修改此配置)工作者数量当前必须等于CPU核心数量。这就是我需要前者的原因。我无法通过Google搜索或搜索heroku's dev center找到正式答案。我认为这是4核,因为我看到4个并发连接到我的AMQP服务器,但我想确认一下。
谢谢,
Ĵ
答案 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,但是最好假设一次只能执行一个进程。