현재 JDK 1.6.0_45와 함께 JBoss 5.1에서 실행중인 클러스터 된 응용 프로그램을로드하고 있으며 간헐적 인 JVM 충돌이 발생합니다. 오류 보고서 (아래 보고서의 자세한 내용)에서 충돌이 발생했을 때 에덴 공간이 가득 차있는 것으로 나타나 (100 %), 이것이 가장 가능성이있는 후보라고 생각됩니다.로드 중 간헐적 인 JVM 크래시
따라서 저는 JVisualVM을 실행하여 메모리 누수를 찾고, 특히 내 자신의 클래스를 모니터링했습니다. 이러한 클래스가 메모리에서 증가하는 것을 볼 수 있지만 가비지 수집기가 주기적으로 정리합니다.
메모리 누출이 있더라도 어쨌든 완전한 JVM 충돌이 발생하기 전에 OutOfMemory 오류가 발생할 것으로 예상됩니다. 문제가있는 곳에서 누군가가 올바른 방향으로 나를 가리킬 수 있습니까? 어떤 안내라도 매우 감사 할 것입니다.
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006dba43f7, pid=3980, tid=2556
#
# JRE version: 6.0_45-b06
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.45-b01 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# V [jvm.dll+0x2c43f7]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
싹둑
Heap
PSYoungGen total 670272K, used 662831K [0x00000007d5560000, 0x0000000800000000, 0x0000000800000000)
eden space 641728K, 100% used [0x00000007d5560000,0x00000007fc810000,0x00000007fc810000)
from space 28544K, 73% used [0x00000007fc810000,0x00000007fdcabf68,0x00000007fe3f0000)
to space 28352K, 12% used [0x00000007fe450000,0x00000007fe7d0e60,0x0000000800000000)
PSOldGen total 1398144K, used 1096904K [0x0000000780000000, 0x00000007d5560000, 0x00000007d5560000)
object space 1398144K, 78% used [0x0000000780000000,0x00000007c2f32250,0x00000007d5560000)
PSPermGen total 422848K, used 378606K [0x0000000760000000, 0x0000000779cf0000, 0x0000000780000000)
object space 422848K, 89% used [0x0000000760000000,0x00000007771bb800,0x0000000779cf0000)
싹둑이 가장 가능성이 JVM 버전과 에덴 공간에 문제가
VM Arguments:
jvm_args: -Dprogram.name=run.bat -XX:MaxPermSize=512m -Xms2G -Xmx2G -Dhttp.proxyHost=testproxy -Dhttp.proxyPort=8010 -Dhttps.proxyHost=testproxy -Dhttps.proxyPort=8010 -Djavax.net.ssl.trustStore=cacerts -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.keyStore=testkeystore.jks -Djavax.net.ssl.keyStorePassword=testkeystore -Djboss.messaging.ServerPeerID=2 -Dhttp.nonProxyHosts=*.mydomain.com -Dsun.rmi.dgc.client.gcInterval=900000 -Dsun.rmi.dgc.server.gcInterval=900000 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Djava.library.path=C:\jboss-5.1.0.GA\bin\native;C:\Program Files (x86)\Windows Resource Kits\Tools\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\jboss-5.1.0.GA\bin -Djava.endorsed.dirs=C:\jboss-5.1.0.GA\lib\endorsed
java_command: org.jboss.Main -c hops-cnf -b 0.0.0.0
Launcher Type: SUN_STANDARD
JVM 충돌은 거의 코드 문제가 아닙니다. JVM 구현시 버그가있는 것 같습니다. 보고서에서 GC가 실행하려고하는 것처럼 보입니다. 그러나 어떤 이유로 VM이 충돌합니다. 시도 할 사항은 다음과 같습니다. - -Xmx4G를 사용하여 64 비트 JVM에서 실행 하시겠습니까? - -Xms2G를 사용하지 않으실 수 있습니까? Xms 및 Xmx 플래그를 같은 값으로 설정하면 힙이 커질 여유가 없습니다. Xms 및 Xmx 플래그 없이도 시도 할 수 있습니다 – PowerPanda