我的在线服务有问题,重新加载后几秒内进程内存有时会变得太大(2GB或更多,正常进程只需要大约300MB的驻留内存),然后就像其他兄弟进程一样稳定。 我使用pmap -x pid来检查内存使用情况,并发现一大块已分配的驻留脏内存(私有和共享)。 我尝试使用google tcmalloc替换系统malloc,更改tcmalloc代码以使其在分配大于5MB的内存大小时中止:
inline void* do_malloc_or_cpp_alloc(size_t size) {
/* test */
if (size >= 1024*1024*5) {
abort();
}
/* test */
return tc_new_mode ? cpp_alloc(size, true) : do_malloc(size);
}
然后我在网络环境中链接了tcmalloc,但是当同样的情况再次发生时,无法获取任何core_dump文件......
任何人都可以告诉我如何解决这样的问题吗?