红宝石,PostgreSQL和线程的内存膨胀

时间:2018-08-31 12:33:02

标签: ruby-on-rails ruby postgresql memory-leaks multi-tenant

我正在运行Rails(5.0.7),Ruby(2.3.7)

当我更改线程中的架构时,内存似乎并没有停止增加。但是没有线程内存将保持不变。

带有线程

loop {
   Thread.new{  
     ActiveRecord::Base.connection.execute("SET search_path TO new_schema;")
   }.join
   GC.start
   p  GC.stat(:heap_live_slots)
}

输出:

554116
554941
555766
556591
557416
558241
559066
559891
560716
561541
562366
563191
564016
564841
565666
566491
567316
568141
568966
569791
570616
571441
572266
573091
573916
574741
575566
576391
577216
578041

无线程

loop {
   ActiveRecord::Base.connection.execute("SET search_path TO new_schema;")
   GC.start
   p  GC.stat(:heap_live_slots)
}

输出:

585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285
585285

我发现有很多架构https://github.com/rails/rails/issues/19578的内存膨胀 但是我想它已经修复了,不确定为什么会这样。

0 个答案:

没有答案