2016-01-17 60 views
2

我有一個運行在Ubuntu 12.04.1 LTS,Java 8u40上的Play Framework 2.4應用程序。一段時間後,我的應用程序停止響應。當我使用top檢查CPU負載時,我看到java進程正在使用100%的CPU。當我運行jstack -F -m <PID>時,我看到循環線程在JVM本機幀之間。JVM本地線程循環並使用100%的CPU

這裏是循環線程的jstack輸出:

----------------- 1062 ----------------- 
0x00007f01a8a531cc _ZNK5Klass12next_siblingEv + 0xc 
0x00007f01a86b18ee _ZN15ciInstanceKlass24has_finalizable_subclassEv + 0xbe 
0x00007f01a85f683e _ZN12GraphBuilder23call_register_finalizerEv + 0x9e 
0x00007f01a85fd2a5 _ZN12GraphBuilder13method_returnEP11Instruction + 0x295 
0x00007f01a860385f _ZN12GraphBuilder27iterate_bytecodes_for_blockEi + 0x6cf 
0x00007f01a8600c4b _ZN12GraphBuilder18iterate_all_blocksEb + 0x14b 
0x00007f01a86015e6 _ZN12GraphBuilder15try_inline_fullEP8ciMethodbN9Bytecodes4CodeEP11Instruction + 0x996 
0x00007f01a86017df _ZN12GraphBuilder10try_inlineEP8ciMethodbN9Bytecodes4CodeEP11Instruction + 0x11f 
0x00007f01a8602912 _ZN12GraphBuilder6invokeEN9Bytecodes4CodeE + 0xbb2 
0x00007f01a860383d _ZN12GraphBuilder27iterate_bytecodes_for_blockEi + 0x6ad 
0x00007f01a8600c4b _ZN12GraphBuilder18iterate_all_blocksEb + 0x14b 
0x00007f01a86015e6 _ZN12GraphBuilder15try_inline_fullEP8ciMethodbN9Bytecodes4CodeEP11Instruction + 0x996 
0x00007f01a86017df _ZN12GraphBuilder10try_inlineEP8ciMethodbN9Bytecodes4CodeEP11Instruction + 0x11f 
0x00007f01a8602912 _ZN12GraphBuilder6invokeEN9Bytecodes4CodeE + 0xbb2 
0x00007f01a860383d _ZN12GraphBuilder27iterate_bytecodes_for_blockEi + 0x6ad 
0x00007f01a8600bf2 _ZN12GraphBuilder18iterate_all_blocksEb + 0xf2 
0x00007f01a86057a7 _ZN12GraphBuilderC1EP11CompilationP7IRScope + 0x527 
0x00007f01a860e127 _ZN7IRScopeC1EP11CompilationPS_iP8ciMethodib + 0x1e7 
0x00007f01a860e23f _ZN2IRC1EP11CompilationP8ciMethodi + 0x9f 
0x00007f01a85ed25b _ZN11Compilation9build_hirEv + 0xdb 
0x00007f01a85ed61e _ZN11Compilation19compile_java_methodEv + 0x6e 
0x00007f01a85ed74e _ZN11Compilation14compile_methodEv + 0x4e 
0x00007f01a85edabe _ZN11CompilationC1EP16AbstractCompilerP5ciEnvP8ciMethodiP10BufferBlob + 0x25e 
0x00007f01a85ee869 _ZN8Compiler14compile_methodEP5ciEnvP8ciMethodi + 0xa9 
0x00007f01a874143a _ZN13CompileBroker25invoke_compiler_on_methodEP11CompileTask + 0xc9a 
0x00007f01a87423e6 _ZN13CompileBroker20compiler_thread_loopEv + 0x5d6 
0x00007f01a8cf596f _ZN10JavaThread17thread_main_innerEv + 0xdf 
0x00007f01a8cf5a9c _ZN10JavaThread3runEv + 0x11c 
0x00007f01a8ba9ee8 _ZL10java_startP6Thread + 0x108 

後,我從玩2.3升級到2.4和Java 7與Java 8。我不認爲遊戲的升級這個問題開始有什麼有了這個。它看起來與JIT編譯有關。

什麼是這個線程和什麼可能是無限循環的原因,當然我該如何修復/解決方法呢?

謝謝。

+0

這不是offtopic –

+0

8u40不是當前版本,請嘗試更新,看看它是否改變ings – the8472

+0

@ the8472我已經更新到8u66,並沒有幫助。 – neonal

回答

0

我遇到了同樣的問題之前,對我來說是代碼緩存已滿,嘗試通過JConsole的檢查代碼緩存使用率

enter image description here

,並嘗試提高其

-XX:ReservedCodeCacheSize=512m 

選擇價值根據您的應用程序的使用