Rails 求助:几乎没有访问量,CPU 占用接近 0,但是内存被占满是为什么?

hegwin · 2015年02月13日 · 最后由 hegwin 回复于 2015年02月15日 · 2623 次阅读

看下 2 月 7-9 日的数据,真的觉得匪夷所思啊,我是遇到内存泄露了吗?这种情况要怎么排查才好?

详细说来是这样的,的确服务器上运行了 9 个实例可能比较多,可是我们还有比这个项目要大且复杂的多项目也是跑的 9 个实例,只占到 2~3G 的内存。

我排查了下面这些原因: 没有文件加载读写,除了默认的日志 session 里没有存太多东西,只有用户登陆的 session 尝试去看了下 ObjectSpace 的东西,但是我不太明白怎么去分析这个玩意:

开发环境下项目刚启动时,count 了下部分对象是这样的: Symbol => 28823 String => 139372 Array => 35909 Hash => 4689 内存(4G)占用 4.2%

跑着跑着会慢慢增加: "==============================" Symbol => 30069 String => 481743 Array => 64058 Hash => 12637

6.4%

"==============================" Symbol => 30142 String => 528109 Array => 55563 Hash => 15242

7.2%

"==============================" Symbol => 30726 String => 550410 Array => 45791 Hash => 16344

7.6%

"==============================" Symbol => 30726 String => 921422 Array => 79129 Hash => 25882

9.2%

"==============================" Symbol => 30749 String => 545869 Array => 63066 Hash => 16949

9.4%

"==============================". Symbol => 30787 String => 671939 Array => 64253 Hash => 21327

9.6%

另外最开始提到的 NewRelic 的监视的图

共收到 3 条回复

你开了太多的 instance,如果几乎没请求的话,根据自己的内存大小和服务器规划,开 2-4 个足够了,我看到你开了 9 个。 instance 只要开着,都一直加载在内存,每个固定占用 200-400MB 的内存,x 9 以后就很多了。

这个问题我也遇到过,把 instance 减少就行了

@kgen @hxh1246996371 谢谢二位,我尝试一下

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册