当我尝试将我的应用部署到Heroku时,我已根据heroku's guide设置了procfile
和unicorn.rb
文件。但是,在文件的顶部有一行
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
我想这要我在WEB_CONCURRENCY=
文件中设置.env
。但是,我不确定我应该设置的等于什么。
答案 0 :(得分:2)
基本上,每个dyno中需要多少个工作进程。见here。每个工作进程都允许您在同一个dyno上运行并发请求。每个工作进程都会占用一些内存,因此更多的工作进程会使您的应用运行速度变慢。看起来Heroku推荐2-4个工作进程,所以我会把它放在那里的某个地方。如果你没有设置任何东西,它将默认为3
,这可能是一个很好的数字。
底线:您需要将其设置为一个整数,可能介于2和4之间。除非您有理由更改它,否则保留默认值为3可能没问题。
答案 1 :(得分:2)
根据dyno大小启用WEB_CONCURRENCY设置为默认值
$ heroku config:set SENSIBLE_DEFAULTS=enabled
$ git commit --allow-empty -m "enable sensible defaults"
$ git push heroku master
$ heroku run bash --size 2X
Running `bash` attached to terminal... up, run.7530
~ $ echo $WEB_CONCURRENCY
4
启用后,该值将默认为:
这将根据您的动态类型和大小更改您的WEB_CONCURRENCY
阅读更多here
答案 2 :(得分:0)
如果您使用2 + 2标准Dynos或PX性能Dynos,您可以增加它们并设置为其他值,具体取决于unicorn分叉的unix进程的平均内存占用量。其他标准做法是将数字保持在2-4之间或默认为3