使用ruby 2.3.0和Puma 2.15.3的rails应用程序内存泄漏

时间:2016-06-13 09:28:32

标签: ruby-on-rails ruby-on-rails-4 memory-leaks puma ruby-2.3

有一段时间我的应用程序中一直存在内存泄漏。当前的设置运行Ruby 2.3.0,Rails 4.2和Puma Webserver puma 2.15.3 Heroku建议使用Puma,但是很多调试让我相信它是真正的Puma Webserver,这是导致所有麻烦的原因。在调试过程中,我删除了大部分宝石,代码等,但问题仍然存在,RAM内存不断增加,直到出现内存不足。这就是为什么我99,999%肯定泄漏不是来自我的应用程序。接下来,我在我的开发系统上安装了“Thin”Webserver,这也不是解决方案。然后我还将我的ruby版本升级到2.3.0并立即解决了泄漏问题,RAM使用率保持不变。

由于这种演变,我将我的生产系统升级到Ruby 2.3.0(认为它只是一个ruby版本问题),但我仍然有内存泄漏。我现在正处于我的Puma Webserver和Ruby 2.3.0的组合......

你们中有没有人对Puma在Ruby 2.3.0中发生内存泄漏有任何经验。

提前致谢, Ť

更新 我的puma.rb

workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['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

0 个答案:

没有答案