Java Cpu 100%无响应解决方案

发表于:2016-10-14 09:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Rings    来源:51Testing软件测试网采编

  占用cpu高的线程的堆栈如下:
Thread 1 (process 17775):
#0  0x00007fa870981179 in Klass::subklass() const () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#1  0x00007fa8706d15c5 in Dependencies::find_finalizable_subclass(Klass*) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#2  0x00007fa8705df8ee in ciInstanceKlass::has_finalizable_subclass() () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#3  0x00007fa87052483e in GraphBuilder::call_register_finalizer() () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#4  0x00007fa87052b2a5 in GraphBuilder::method_return(Instruction*) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#5  0x00007fa87053185f in GraphBuilder::iterate_bytecodes_for_block(int) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#6  0x00007fa87052ec4b in GraphBuilder::iterate_all_blocks(bool) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#7  0x00007fa87052f5e6 in GraphBuilder::try_inline_full(ciMethod*, bool, Bytecodes::Code, Instruction*) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#8  0x00007fa87052f7df in GraphBuilder::try_inline(ciMethod*, bool, Bytecodes::Code, Instruction*) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#9  0x00007fa870530912 in GraphBuilder::invoke(Bytecodes::Code) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#10 0x00007fa87053183d in GraphBuilder::iterate_bytecodes_for_block(int) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#11 0x00007fa87052ec4b in GraphBuilder::iterate_all_blocks(bool) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#12 0x00007fa87052f5e6 in GraphBuilder::try_inline_full(ciMethod*, bool, Bytecodes::Code, Instruction*) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#13 0x00007fa87052f7df in GraphBuilder::try_inline(ciMethod*, bool, Bytecodes::Code, Instruction*) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#14 0x00007fa870530912 in GraphBuilder::invoke(Bytecodes::Code) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#15 0x00007fa87053183d in GraphBuilder::iterate_bytecodes_for_block(int) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#16 0x00007fa87052ebf2 in GraphBuilder::iterate_all_blocks(bool) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#17 0x00007fa8705337a7 in GraphBuilder::GraphBuilder(Compilation*, IRScope*) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#18 0x00007fa87053c127 in IRScope::IRScope(Compilation*, IRScope*, int, ciMethod*, int, bool) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#19 0x00007fa87053c23f in IR::IR(Compilation*, ciMethod*, int) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#20 0x00007fa87051b25b in Compilation::build_hir() () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#21 0x00007fa87051b61e in Compilation::compile_java_method() () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#22 0x00007fa87051b74e in Compilation::compile_method() () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#23 0x00007fa87051babe in Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#24 0x00007fa87051c869 in Compiler::compile_method(ciEnv*, ciMethod*, int) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#25 0x00007fa87066f43a in CompileBroker::invoke_compiler_on_method(CompileTask*) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#26 0x00007fa8706703e6 in CompileBroker::compiler_thread_loop() () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#27 0x00007fa870c2386f in JavaThread::thread_main_inner() () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#28 0x00007fa870c2399c in JavaThread::run() () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#29 0x00007fa870ad7de8 in java_start(Thread*) () from /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
#30 0x0000003202c079d1 in start_thread () from /lib64/libpthread.so.0
#31 0x00000032028e88fd in clone () from /lib64/libc.so.6
  gdb 跟进发现:线程在函数Dependencies::find_finalizable_subclass(Klass*) 中,应该有一个循环,不断地调用函数Klass::subklass()
  解决办法:
  The fix was simple – disable CMS class unloading options when -Xnoclassgc or -XX:-ClassUnloading are specified.
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号