mmap调用时间过长(> 100秒)

时间:2014-04-28 16:19:55

标签: c++ linux memory-management

目前我们看到我们的流程在mmap调用时耗时太长。 一旦进程达到约2.8 GB,mmap调用最多需要100 秒和它被这个过程中建立的心跳机制杀死。 想知道有人见过这个问题或者知道mmap为什么会这么做 当被问及记忆时,超过100秒。在所有情况下堆栈跟踪 看起来相同,但内存分配在代码的不同部分。

主机和编译器信息:

  • 主机内存:70 gb OS:redhat 6.3编译器:gcc 4.4.6进程内存 限制(32位):4 gb未配置交换

当发生这种情况时,主机仍然有50GB的内存。

堆栈追踪:

#0  0x55575430 in __kernel_vsyscall ()
#1  0x560f9dd8 in mmap () from /lib/libc.so.6
#2  0x5608f2db in _int_malloc () from /lib/libc.so.6
#3  0x5608fb7e in malloc () from /lib/libc.so.6
#4  0x55fb509a in operator new(unsigned int) () from /usr/lib/libstdc++.so.6
#5  0x55f91ed6 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&) ()
   from /usr/lib/libstdc++.so.6

0 个答案:

没有答案