hyj1991/easy-monitor

使用过程中导致服务端退出

shawvyu opened this issue · 6 comments

1,使用最先版本的easy-monitor会导致打开dashboard时,服务器端的内存暴涨200M左右
2,我们这里服务器存在内存泄漏的情况,当服务器内存涨到一定程度,我想上dashboard查看dump时,服务器突然退出。
3,服务器本身使用express框架
4,配置easy-monitor只使用了默认配置加代理profix

当时我们的服务端应用占用600M左右,服务器剩余内存1G左右

@shawvyu 这是没办法的,因为 600MB 的堆 dump 出来估计就要几百兆,这里还要序列化和解析,也是需要消耗物理内存的。

easy-monitor v2.0 的版本目前完全使用 js 实现,所以在堆快照的解析上开销降不下来(毕竟要用 js 去 JSON.parse 一个几百兆的字符串,你想想就知道要消耗多少内存了),这个问题在 3.0 版本会解决,3.0 的插件完全由 c++ 实现,当然于此相对使用上会比 2.0 麻烦一些。

这是 3.0 的运行时插件:https://github.com/X-Profiler/xprofiler

整体的控制台和数据采集管理模块还在编写中,预计六月中下旬放出来。

当然目前的一个办法是,你在堆 100 ~ 200M 左右的时候就去执行内存分析操作,看看能不能拿到有用的引力图,按照我的经验,内存泄露只要发生一般堆不大的时候就有特征堆快照了

Reference: #117

我尝试过了,当内存在300M的时候,堆内存的快照还是比较正常的。你的dashboard也显示正常,看不出来哪里泄漏。所以我跑了一个晚上的,才去截取的。因为我这个是http服务器,只有在有流量访问的服务器上才比较测的出来。期待3.0的来临