큰 Java 응용 프로그램을 작성했습니다. 그것은 꽤 평행하며 여러 개의 fixedThreadPools (각각 8 개의 스레드가 있음)를 사용합니다. 나는 4 개의 프로세서가있는 2 개의 코어가있는 컴퓨터에서 실행하고 있습니다. 내 프로그램은 많은 양의 데이터를 분석하고 있으며 분석은 모든 세트에서 수행되지만 데이터 세트에서 작동하지만 새 인스턴스를 실행할 때마다 다시로드 (저장)됩니다. 내 문제는 이것입니다 : 4-5 데이터 세트를 실행 한 후 (약 2 일이 걸리고 코딩 효율이 매우 만족합니다), 5 번째 세트에서 정확히 같은 시간이 지난 후에 충돌합니다 내가 사용하는 세트). 이 프로그램은 반복적이므로이 시점에서 진행되는 코드에는 새로운 내용이 없습니다. 재현성이 있으며 무엇을해야할지 모르겠습니다. 그게 도움이 될 경우 전체 오류 로그를 게시 할 수 있습니다 ... 나는이 문제가 훨씬 더 자세한 정보없이 모호하다는 것을 이해하지만, 어떤 제안이 있다면, 크게 감사하겠습니다.Java 응용 프로그램 충돌
나는 다른 설정을 테스트하여 도움이되는지 알아보기 위해 지금 다음 인수를 사용하고 있습니다.
-Xmx6g -Xmx12g -XX : + UnlockExperimentalVMOptions -XX : + UseG1GC
감사합니다, 조 그냥 하드 추측
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x0000000000000000, pid=18454, tid=140120548144896
#
# JRE version: 7.0_03-b147
# Java VM: OpenJDK 64-Bit Server VM (22.0-b10 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea7 2.1.1pre
# Distribution: Ubuntu precise (development branch), package 7~u3-2.1.1~pre1-1ubuntu2
# Problematic frame:
# C 0x0000000000000000
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
# https://bugs.launchpad.net/ubuntu/+source/openjdk-7/
#
아마도 -XX : + UnlockExperimentalVMOptions -XX : + UseG1GC는 그런 좋은 디아가 아니십니까? – bmargulies
가능한 경우 Java 버전 업그레이드를 고려할 것입니다. 또한 코드가 실제로 반복 가능하다면 Sun/Oracle에 버그를 제출하는 것도 고려해 볼 수 있습니다. – Gray
G1 콜렉터를 사용하여 JVM이 충돌했습니다. –