首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性中的非线程安全Rails 5应用程序

弹性中的非线程安全Rails 5应用程序
EN

Stack Overflow用户
提问于 2018-12-12 13:48:22
回答 1查看 348关注 0票数 0

我在elastic Beanstalk中部署我的Rails 5.2应用程序,其中puma作为应用服务器,Nginx作为默认的Elastic beanstalk。

我正面临着一个种族状况的问题。在容器实例中查看了更多详细信息后,我发现了以下内容:

代码语言:javascript
复制
#example /opt/elasticbeanstalk/support/conf/pumaconf.rb
directory '/var/app/current'
threads 8, 32
workers %x(grep -c processor /proc/cpuinfo)
bind 'unix:///var/run/puma/my_app.sock'
pidfile '/var/run/puma/puma.pid'
stdout_redirect '/var/log/puma/puma.log', '/var/log/puma/puma.log', true
daemonize false

如图所示,工作进程的数量等于我的CPU核心的数量。

但是,在Heroku.com中,我们可以这样做:

代码语言:javascript
复制
# config/puma.rb

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
  # Worker specific setup for Rails 4.1+
  # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
  ActiveRecord::Base.establish_connection
end

如何在弹性豆茎中减少线程数并增加工作线程数?考虑到我启用了一个负载均衡器,上面的配置是由elastic beanstalk管理的。

在Heroku的情况下,我可以使用puma.rb进行管理,但是在elastic beanstalk中,除了更改文件之外,我看不到任何其他方法

代码语言:javascript
复制
/opt/elasticbeanstalk/support/conf/pumaconf.rb

手动。手动修改会导致实例数量缩容或扩容时出现问题。

EN

回答 1

Stack Overflow用户

发布于 2019-04-04 12:02:26

不确定,如果你已经解决了你的问题。我遇到了类似的问题,我使用.ebextensions解决了它。

您可以在代码中的配置目录中创建一个新的pumaconf.rb文件。然后在.ebextensions目录中,创建一个文件,该文件将复制出新的pumaconf.rb并替换默认的pumaconf.rb。

另外,如果你是这样做的话。在.ebextensions代码中,将此路径用于新文件

/var/app/ondeck/config/pumaconf.rb

而不是

/var/app/current/config/app aconf.rb

因为使用后者,不会复制出您最新的pumaconf.rb

代码语言:javascript
复制
cp /var/app/ondeck/config/pumaconf.rb /opt/elasticbeanstalk/support/conf/pumaconf.rb
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53736774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档