看下 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 的监视的图