处理脏内存太大

时间:2015-01-09 06:38:53

标签: c++ c memory

我的在线服务有问题,重新加载后几秒内进程内存有时会变得太大(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文件......

任何人都可以告诉我如何解决这样的问题吗?

0 个答案:

没有答案