4

큰 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/ 
# 
+2

아마도 -XX : + UnlockExperimentalVMOptions -XX : + UseG1GC는 그런 좋은 디아가 아니십니까? – bmargulies

+0

가능한 경우 Java 버전 업그레이드를 고려할 것입니다. 또한 코드가 실제로 반복 가능하다면 Sun/Oracle에 버그를 제출하는 것도 고려해 볼 수 있습니다. – Gray

+0

G1 콜렉터를 사용하여 JVM이 충돌했습니다. –

답변

1

나는 이것을 Visual VM과 같은 도구로 사용합니다. 앱이 실행되면서 메모리, 스레드, CPU, 생성 된 오브젝트 등에서 실시간으로 무슨 일이 일어나는지 보여줍니다.

좋은 버전은 Oracle/Sun JVM 전용입니다. JDK와 함께 제공되는 버전이 있지만, 모든 플러그인을 설치 한 상태에서 1.6.3 버전만큼 자세한 정보를 제공한다고 생각하지 않습니다.

+0

감사합니다. 매우 유용합니다. – JoeC

3

...

는 수 없습니다 수 있습니다 더 많은 파일을 만들려면

Linux에서이 파일을 실행하는 경우 실행 해보십시오.

당신이 당신의 자바 프로그램을 실행하기 전에
ulimit -c unlimited 

...이 두 가지 방법

  1. 오류가가 코어 덤프를 생성합니다 발생하면 그것은 파일 생성 제한
  2. 증가 할 전망에 도움이 될 것입니다.

프로그램이 실행되는 동안 사용중인 파일 IO의 수를 확인하십시오.

+0

고마워, 나는 이것을 시도 할 것이다. – JoeC

0

eclipse.ini 파일에 -Dorg.eclipse.swt.browser.DefaultType = mozilla를 추가하십시오.