我的问题:
这是内存膨胀,内存泄漏或服务器配置错误的示例吗?
首先,我将添加内存使用情况的屏幕截图
如您所见,我一直在使用交换内存。
此外,根据Heroku文档设置我的Puma服务器config / puma.rb文件后,我得到一个恒定的平台,然后增加内存。
我正在运行业余爱好者dyno 1x(512 mb),有0名工人。
我的WEB_CONCURRENCY变量设置为1
我的RAILS_MAX_THREADS也设置为1
MIN_THREADS也设置为1
这是我的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+
ActiveRecord::Base.establish_connection
end
我正在使用脱轨的宝石测量我的宝石中的内存使用情况。
我正在使用rack-mini-profiler& memory_profiler基于每页进行测量。
允许应用程序运行后,具体如下:
正如您所看到的,应用程序未超出其限制。如果有人有任何有意义的建议,请随时回答这个问题。
答案 0 :(得分:0)
上面提到的dyno和puma正在制作这份报告。
所以,我们现在偶尔只使用交换内存,不超过几MB,只是偶尔会达到23 MB。该应用程序使用了很多宝石,你可以看到我们保持在512 MB的限制之下。
我使用了Heroku的以下文档:
正确配置您的Puma服务器
https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server
对于R14内存错误
https://devcenter.heroku.com/articles/ruby-memory-use