我写了一个我在Heroku上托管的小型Rails 5 API专用应用程序。所有应用程序所要做的就是从数据库中检索一些数据(目前少于5K的记录)并将其输出为JSON。在部署应用程序并从浏览器运行几个测试查询(使用不同的参数来过滤结果)之后,我在Heroku上注意到以下内容:
处理JSON转换的gem是
gem 'jsonapi-utils', '~> 0.6.0.beta'
但是我也没有尝试过,就RAM消耗而言,它没有任何区别。
此外,我的应用程序中的所有内容都是生成Rails 5 API-only应用程序的默认设置。 Puma配置看起来像这样:
threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i
threads threads_count, threads_count
port ENV.fetch("PORT") { 3000 }
environment ENV.fetch("RAILS_ENV") { "development" }
workers ENV.fetch("WEB_CONCURRENCY") { 2 }
preload_app!
on_worker_boot do
ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
end
plugin :tmp_restart
这是Heroku推荐的那个:https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server
从发行版中可以看出,空闲应用程序占用的RAM非常少。怎么可能有几个请求(< 20)会大量增加RAM的使用量,我该怎么办呢?
P.S。我正在使用Rails 5.0.2和Ruby 2.4.1