java cpu 100% 无响应

占用cpu高的线程的堆栈如下:

gdb 跟进发现:线程在函数Dependencies::find_finalizable_subclass(Klass*) 中,应该有一个循环,不断地调用函数Klass::subklass()

 

解决办法:

The fix was simple – disable CMS class unloading options when -Xnoclassgc or -XX:-ClassUnloading are specified.

参考资料:

https://blogs.oracle.com/poonam/entry/jvm_hang_with_cms_collector

 

想阅读jvm源码吗? https://blogs.oracle.com/sundararajan/entry/so_you_want_to_read

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据