繁体   English   中英

Rails 4,Ruby 2.1在sign_in / sign_out上的明显内存泄漏

[英]Rails 4, Ruby 2.1 apparent memory leak on sign_in/sign_out

我在Heroku上有一个漂亮的香草Rails 4,Ruby 2应用程序。 一段时间后,我注意到R14错误,并且我追踪了一个增加内存的来源到sign_in / sign_out。 因此,如果我登录用户然后注销,我会看到内存增加1mb,有时增加10mb。 如果我继续签名并注销同一用户,则内存将不断增加。

一些更多的细节:

  • Devise 3.2.4,Papertrail,Rollbar
  • 达利商店/ Memcachier
  • 历时90分钟
  • 什么都没做
  • 登录后,用户将重定向到欢迎页面,该页面主要是片段缓存的
  • NewRelic除了增加内存使用率外没有提供太多其他信息
  • Heroku日志运行时指标已启用
  • 仅运行1名Unicorn工作者(由于他们的内存不足,因此希望运行2或3)
  • db连接池2,按照Heroku的建议每10秒获得一次连接

我用它来确定每次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内存是否应该有任何影响? 我的假设是不会。 有什么想法可以解决吗?

您使用的是红宝石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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM