У меня возникла странная проблема с JVM, я развернул приложение Rest Service на tomcat, но теперь иногда JVM аварийно падает, иногда он вылетает через 3 часа, иногда через 20 часов, иногда занимает несколько дней , Я думал, что что-то не так с приложением о куче памяти, возможно, приложение несколько раз вызывает «стоп-мир», пока GC не сработает или что-то еще. (Не специалист по этой теме).JVM Crashes on GCTaskThread
Считаете ли вы, что проблема связана с кодом (возможно, проблема с производительностью) или может быть потенциальной ошибкой JVM, я прочитал несколько блогов и форумов оракула, некоторые люди просто сказали обновить JVM.
Благодарим за помощь.
JVM Args:
- -Xms1024M
- -Xmx4098M
- -XX: MaxPermSize = 512M
- -XX: + UseConcMarkSweepGC
- -XX: + CMSIncrementalMode
- -XX : MaxGCPauseMillis = 1200
- -XX: ParallelGCThreads = 8
Машина: Intel Intel (R) Xeon (R) CPU E5-2680 v3 @ 2.50GHz с 8 ядрами - 32-гигабайтная оперативная память.
Здесь сообщения журнала hs_err:
===================================================================
A fatal error has been detected by the Java Runtime Environment:
SIGSEGV (0xb) at pc=0x00007f8182e7c841, pid=24461, tid=140194202347264
JRE version: Java(TM) SE Runtime Environment (7.0_55-b13) (build 1.7.0_55-b13)
Java VM: Java HotSpot(TM) 64-Bit Server VM (24.55-b03 mixed mode linux-amd64 compressed oops)
Problematic frame:
V [libjvm.so+0x46c841] CMSParRemarkTask::do_work_steal(int,Par_MarkRefsIntoAndScanClosure*, int*)+0x101<br/>
Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again<br/>
If you would like to submit a bug report, please visit:<br/>
http://bugreport.sun.com/bugreport/crash.jsp<br/>
--------------- T H R E A D ---------------
Current thread (0x00007f817c021000): GCTaskThread [stack: 0x00007f8181916000,0x00007f8181a17000] [id=24464]
siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x00000000af4ea190
Memory: 4k page, physical 49426864k(32696640k free), swap 2093052k(2089664k free)
vm_info: Java HotSpot(TM) 64-Bit Server VM (24.55-b03) for linux-amd64 JRE (1.7.0_55-b13), built on Mar 17 2014 19:43:58 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
A SIGSEGV - это ошибка сегментации. То есть Приложение пытается получить доступ к адресу памяти за пределами заданного диапазона. Это может быть вызвано ошибкой, поэтому обновление JVM похоже на правильный вызов. (Тем более, что ошибка возникает в том, что называется '' 'libjvm.so''') –
Я попрошу обновить JVM и посмотреть, как это происходит :) спасибо Jorn Varnee. –