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

jca*_*lan 20 cpu heroku cpu-cores celery

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

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

谢谢,

Ĵ

rya*_*ard 29

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

  • 截至目前,我得到的 Standard-1X 为 8 个,Standard-2X 为 8 个,Performance-M 为 2 个,Performance-L 为 8 个。 (3认同)
  • 当我在我的1x heroku dynos中运行`grep -c processor/proc/cpuinfo`时,结果是`4` (2认同)
  • 对我来说,X1 dyno 是 8 (2认同)

Fau*_*aun 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      |
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

但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
Run Code Online (Sandbox Code Playgroud)

  • 这个答案现在已经过时了.对4种当前dyno类型运行相同的cpuinfo测试可以得到:Standard-1x:8 Standard-2x:8 Performance-M:2 Performance-L:8 (5认同)

jro*_*ind 5

heroku puma 文档建议您可以通过nproc在测功机上运行来找到这一点:

\n

例如,要查看有多少人处于 Performance-m 状态,请运行:

\n
$ heroku run bash --size=performance-l\n$ nproc\n8\n
Run Code Online (Sandbox Code Playgroud)\n

但然后除以 2,因为:

\n
\n

nproc 返回的值除了物理内核之外还包括 \xe2\x80\x9chyperthreads\xe2\x80\x9d,这两者的组合称为 vCPU 计数。Heroku 上使用的所有物理核心都有一个超线程,因此要获得 \xe2\x80\x9ctrue\xe2\x80\x9d 物理核心数量除以二。

\n
\n

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

\n

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

\n

Standard-1x 和 Standard-2x 都nproc告诉我“8”,意味着 4 个 CPU,但 heroku puma 文档警告说,这些 CPU与其他用户共享,因为标准 dyno 是多租户的。

\n
\n

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

\n
\n