我们的Rails 3.2应用程序(Ruby 2.1.5)位于Passenger(4.0.59)之后,并使用默认的spawn方法,Passenger docs规定这是“智能”。
据称,智能产卵可以减少每个进程内存占用的约33%。我很好奇我们使用智能产卵获得了多少好处所以我修改了配置以指定“直接”产卵。
然而,在切换到“直接”之后,我们流程的内存占用量没有像我预期的那样增加。这似乎表明我们实际上并没有从智能产卵中获得任何好处。
关于为什么会出现这种情况的任何理论?
我们不实际上使用智能产生,尽管在配置文件中指定它? “顶级”outpu(特别是VIRT和RES列)不是衡量每个进程内存使用情况的好方法吗?
还有其他什么吗?
答案 0 :(得分:0)
你需要Ruby> = 2.0.0才能充分利用内存节省,因为Ruby垃圾收集器从2.0.0开始只是可写入时复制。
您不应使用“top”来衡量内存,因为它不会考虑共享内存。
这两个事实都记录在乘客文件中: