tcmalloc导致程序无法启动
2017-06-15 11:43
776 查看
启用tcmalloc编译后,在测试机上调试启动运行都没有问题,但是上了线上服务器后就无法启动,CPU占用还非常高,pstack看了下,死锁了,线程全部卡在spinlock下面,又折回去发现在我开发机上就不会走到SpinLock::SlowLock这个函数,没辙,老老实实自己折腾个内存池吧
Thread 5 (Thread 0x7f848c753700 (LWP 4197)):
#0 0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4
#1 0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4
#2 0x00007f8489a69065 in tcmalloc::CentralFreeList::Populate() () from /usr/local/lib/libtcmalloc.so.4
#3 0x00007f8489a692a0 in tcmalloc::CentralFreeList::FetchFromOneSpansSafe(int, void**, void**) () from /usr/local/lib/libtcmalloc.so.4
#4 0x00007f8489a69343 in tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) () from /usr/local/lib/libtcmalloc.so.4
#5 0x00007f8489a6d3e5 in tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long) () from /usr/local/lib/libtcmalloc.so.4
#6 0x00007f8489a5c193 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4
#7 0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4
#8 0x0000003f5309c3c9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6
#9 0x0000003f5309ddaa in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, unsigned long) () from /usr/lib64/libstdc++.so.6
#10 0x0000003f5309df6c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_safe(unsigned long, unsigned long, char const*, unsigned long) () from /usr/lib64/libstdc++.so.6
#11 0x00007f848a4c4708 in ?? ()
#12 0x0000000000000000 in ?? ()
Thread 4 (Thread 0x7f848bd52700 (LWP 4199)):
#0 0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4
#1 0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4
#2 0x00007f8489a6db63 in tcmalloc::ThreadCache::CreateCacheIfNecessary() () from /usr/local/lib/libtcmalloc.so.4
#3 0x00007f8489a5c2d6 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4
#4 0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4
#5 0x00007f848a4b641f in ?? ()
#6 0x0000000000000000 in ?? ()
Thread 3 (Thread 0x7f848b351700 (LWP 4200)):
#0 0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4
#1 0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4
#2 0x00007f8489a69065 in tcmalloc::CentralFreeList::Populate() () from /usr/local/lib/libtcmalloc.so.4
#3 0x00007f8489a692a0 in tcmalloc::CentralFreeList::FetchFromOneSpansSafe(int, void**, void**) () from /usr/local/lib/libtcmalloc.so.4
#4 0x00007f8489a69343 in tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) () from /usr/local/lib/libtcmalloc.so.4
#5 0x00007f8489a6d3e5 in tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long) () from /usr/local/lib/libtcmalloc.so.4
#6 0x00007f8489a5c193 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4
#7 0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4
#8 0x0000003f5309c3c9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6
#9 0x0000003f5309ddaa in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, unsigned long) () from /usr/lib64/libstdc++.so.6
#10 0x0000003f5309df6c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_safe(unsigned long, unsigned long, char const*, unsigned long) () from /usr/lib64/libstdc++.so.6
#11 0x00007f848a4fcfe3 in ?? ()
#12 0x6120726f6620257b in ?? ()
#13 0x6c6461206e692064 in ?? ()
Thread 1 (Thread 0x7f84a15f4700 (LWP 4026)):
#0 0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4
#1 0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4
#2 0x00007f8489a6db63 in tcmalloc::ThreadCache::CreateCacheIfNecessary() () from /usr/local/lib/libtcmalloc.so.4
#3 0x00007f8489a5c2d6 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4
#4 0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4
#5 0x0000003f5309c3c9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6
#6 0x0000003f5309cde5 in ?? () from /usr/lib64/libstdc++.so.6
#7 0x0000003f5309cf33 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6
Thread 5 (Thread 0x7f848c753700 (LWP 4197)):
#0 0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4
#1 0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4
#2 0x00007f8489a69065 in tcmalloc::CentralFreeList::Populate() () from /usr/local/lib/libtcmalloc.so.4
#3 0x00007f8489a692a0 in tcmalloc::CentralFreeList::FetchFromOneSpansSafe(int, void**, void**) () from /usr/local/lib/libtcmalloc.so.4
#4 0x00007f8489a69343 in tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) () from /usr/local/lib/libtcmalloc.so.4
#5 0x00007f8489a6d3e5 in tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long) () from /usr/local/lib/libtcmalloc.so.4
#6 0x00007f8489a5c193 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4
#7 0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4
#8 0x0000003f5309c3c9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6
#9 0x0000003f5309ddaa in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, unsigned long) () from /usr/lib64/libstdc++.so.6
#10 0x0000003f5309df6c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_safe(unsigned long, unsigned long, char const*, unsigned long) () from /usr/lib64/libstdc++.so.6
#11 0x00007f848a4c4708 in ?? ()
#12 0x0000000000000000 in ?? ()
Thread 4 (Thread 0x7f848bd52700 (LWP 4199)):
#0 0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4
#1 0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4
#2 0x00007f8489a6db63 in tcmalloc::ThreadCache::CreateCacheIfNecessary() () from /usr/local/lib/libtcmalloc.so.4
#3 0x00007f8489a5c2d6 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4
#4 0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4
#5 0x00007f848a4b641f in ?? ()
#6 0x0000000000000000 in ?? ()
Thread 3 (Thread 0x7f848b351700 (LWP 4200)):
#0 0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4
#1 0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4
#2 0x00007f8489a69065 in tcmalloc::CentralFreeList::Populate() () from /usr/local/lib/libtcmalloc.so.4
#3 0x00007f8489a692a0 in tcmalloc::CentralFreeList::FetchFromOneSpansSafe(int, void**, void**) () from /usr/local/lib/libtcmalloc.so.4
#4 0x00007f8489a69343 in tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) () from /usr/local/lib/libtcmalloc.so.4
#5 0x00007f8489a6d3e5 in tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long) () from /usr/local/lib/libtcmalloc.so.4
#6 0x00007f8489a5c193 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4
#7 0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4
#8 0x0000003f5309c3c9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6
#9 0x0000003f5309ddaa in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, unsigned long) () from /usr/lib64/libstdc++.so.6
#10 0x0000003f5309df6c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace_safe(unsigned long, unsigned long, char const*, unsigned long) () from /usr/lib64/libstdc++.so.6
#11 0x00007f848a4fcfe3 in ?? ()
#12 0x6120726f6620257b in ?? ()
#13 0x6c6461206e692064 in ?? ()
Thread 1 (Thread 0x7f84a15f4700 (LWP 4026)):
#0 0x00007f8489a78fd0 in base::internal::SpinLockDelay(int volatile*, int, int) () from /usr/local/lib/libtcmalloc.so.4
#1 0x00007f8489a78dbc in SpinLock::SlowLock() () from /usr/local/lib/libtcmalloc.so.4
#2 0x00007f8489a6db63 in tcmalloc::ThreadCache::CreateCacheIfNecessary() () from /usr/local/lib/libtcmalloc.so.4
#3 0x00007f8489a5c2d6 in (anonymous namespace)::cpp_alloc(unsigned long, bool) () from /usr/local/lib/libtcmalloc.so.4
#4 0x00007f8489a7bc98 in tc_new () from /usr/local/lib/libtcmalloc.so.4
#5 0x0000003f5309c3c9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6
#6 0x0000003f5309cde5 in ?? () from /usr/lib64/libstdc++.so.6
#7 0x0000003f5309cf33 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) () from /usr/lib64/libstdc++.so.6
相关文章推荐
- 求教:Net环境导致WPF程序无法启动
- Asp.net 程序有时候在启动的时候会发生如下错误,导致web应用程序无法正常启动
- 由于使用了一个未经验证的清除垃圾文件的程序,导致Oracle数据库无法接(能启动),系统报错:
- 【JUnit】CreateProcess error=87, The parameter is incorrect错误解决:classpath太长导致程序无法启动
- 中断处理程序中输出调试信息导致无法计算机无法启动
- 解决端口被占用而导致软件运行失败,程序无法启动,无法安装开发工具等问题
- IIS 与Mcafee的冲突,导致IIS无法启动
- 无法在Web服务器上调试程序,调试失败,因为没有启动集成windows身份认证
- 解决:SQL帐户的原因导致系统无法启动 推荐
- win2000启动时提示“无法定位程序输入点SaferCreateLevel于动态链接库ADVAPI32.dll上”怎么解决?
- 优化大师导致OracleOraHome92TNSListener 服务无法启动解决办法!
- vs2005启动调试程序时,出现 无法附加,绑定句柄无效 的错误
- 运行ASP.Net 程序无法启动调试问题汇总
- 修改Windows帐户密码,导致Sql Server 2000无法启动。
- 无法启动world wide web publishing service服务 错误:127 找不到指定的程序
- 关于HAL.DLL文件丢失导致系统无法启动的问题
- 解决Default storage engine (InnoDB) is not available导致mysql无法启动的修改办法
- 删除数据文件导致oracle系统无法启动
- 当程序用ado的jet4.0方式连接的时候,对于设有access数据库密码的mdb的访问居然报错“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开”,而用odbc方式不报错,小阴沟里翻船,郁闷中然后查文档解决之
- 在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)