问题描述
我们正在尝试追踪使用jemalloc(5.2.0)的proxysql(2.0.14)中的内存泄漏。我们在启用调试符号的情况下编译了proxysql。植入proxysql is the following中的jemalloc配置:
xmalloc:true,lg_tcache_max:16,prof:true,prof_leak:true,lg_prof_sample:20,lg_prof_interval:30,prof_active:false
运行时使用PROXYSQL MEMPROFILE START
启用了内存分析,如here所示。这会将内存配置文件设置为active
:
bool en=true;
mallctl("prof.active",NULL,&en,sizeof(bool));
这似乎在生成堆概要文件时起作用,但是当我们使用jeprof分析它们时,它似乎记录了所有内存分配,而不仅是内存泄漏。可以在here中找到我们使用jeprof生成的pdf。如您所见,jeprof似乎显示了所有内存分配,而不仅仅是泄漏的内存分配。
通过查看other memory profiles,它们显示的总内存量较小,而在此配置文件中,我们看到的总内存为21GB,这比服务器可以分配的更多。但是,我们不确定问题出在哪里-使用jeprof,配置或其他全部功能。
作为参考,我们添加了样本堆概要文件here,以防出现问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)