0

我们的 Rails 3.2 应用程序(Ruby 2.1.5)位于Passenger(4.0.59)之后并使用默认的spawn 方法,Passenger 文档规定该方法是“智能的”。

据称智能生成可将每个进程的内存占用减少约 33%。

我很好奇我们从使用智能产卵中获得了多少好处,所以我修改了我们的配置以指定“直接”产卵。

然而,在切换到“直接”之后,我们进程的内存占用并没有像我预期的那样增加。这似乎表明我们实际上并没有从智能产卵中获得任何好处。

关于为什么会这样的任何理论?

尽管在配置文件中指定了智能生成,我们实际上并没有使用它吗?“top”输出(特别是 VIRT 和 RES 列)不是衡量每个进程内存使用情况的好方法吗?

完全不同的东西?

4

1 回答 1

0

您需要 Ruby >= 2.0.0 才能利用内存节省,因为从 2.0.0 开始,Ruby 垃圾收集器仅对写时复制友好。

您不应该使用“top”来测量内存,因为它没有考虑共享内存。

这两个事实都记录在乘客文件中:

于 2015-10-11T02:12:06.620 回答