我在Heroku上有一个非常漂亮的Rails 4,Ruby 2应用程序。一段时间后我注意到R14错误,我追踪了一个增加内存的来源sign_in / sign_out。因此,如果我登录用户然后退出,我会看到内存增加1mb,有时甚至10 MB。如果我继续签名并注销同一个用户,内存会一直在上升。
更多细节:
我已经用它来识别每次发生sign_in / sign_out时字符串和数组都会增加1,000个字符串,500个数组:
ObjectSpace.each_object.with_object(Hash.new(0)){|obj, h| h[obj.class] +=1 }.select{|k,v| puts "#{k} = #{v}"}
我想我的主要问题是,如果我正在使用Dalli store / Memcachier进行会话,那么当用户登录时,是否会对Dyno内存产生任何影响?我的假设是否定的。关于打猎的任何想法?
答案 0 :(得分:0)
您使用的是ruby 2.1.1还是2.1.2?我在ruby 2.1.1上有内存问题,升级到2.1.2有帮助。你可以在这里阅读更多: http://samsaffron.com/archive/2014/04/08/ruby-2-1-garbage-collection-ready-for-production