2011-09-06 3 views
2

Java가 시작하는 데 오랜 시간이 걸리기 때문에 Solaris 시스템에 문제가 있습니다. 심지어 자바 -version 충분히Solaris 10에서 Java가 매우 느리게 시작됩니다.

>time java -version 
java version "1.6.0_20" 
Java(TM) SE Runtime Environment (build 1.6.0_20-b02) 
Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode) 

real 0m34.084s 
user 0m0.088s 
sys  0m8.331s 

재미로 간단한 일에,이 Java6에 제한됩니다

java version "1.5.0_24" 
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_24-b02) 
Java HotSpot(TM) Server VM (build 1.5.0_24-b02, mixed mode) 

real 0m0.320s 
user 0m0.123s 
sys  0m0.138s 

어떤 아이디어?

답변

5

이것은 jvm의 dtrace 초기화에서 알려진 문제입니다. Java 6u25에서 사라졌습니다. Sun Alert 1296670.1에 따라 믿습니다. 우리는 지난 주에 중요한 환경에서이 문제를 밝혀 냈습니다. 고통은 너무나 컸습니다 (분당 100 프로세스를 실행해야하고 갑자기 시작에 10 초를 더 걸릴 수 있습니다 ...). 당신이 당신의 JVM에 고정하는 경우

해결 방법 :

사실

수출 DTRACE_DOF_INIT_DISABLE =이, 우리는 어쨌든 JVM 특정 DTrace 프로브를 사용하지 않는 우리에게 100 % 성공했다.

+0

업데이트를 시도해 주셔서 감사합니다. – pushy

+0

우리는 Solaris (5.10 Generic_144488-06 sun4u sparc SUNW, SPARC-Enterprise) 및 Java 버전 1.6.0_24-b07에서 같은 문제를 겪었습니다. 재미 있긴하지만 문제가 이전에 나타나지 않았고 모든 시스템 (동일한 OS 및 Java 버전 실행)에 나타나지는 않았지만, – ktf

1

Java 6이 네트워크 드라이브에 설치되어있을 가능성이 있습니다. 당신이

df `which java` 
+0

아니요, 네트워크 드라이브가 아니며, 두 jdk가 모두 동일한 드라이브에서 실행 중입니다. – pushy

1

를 시도 할 수 있습니다 당신은 특정 시스템 호출에 시간이 오래 기다리는 경우

truss java -version 

보고 시도 할 수 있습니다.

+1

Java5에서 트러스를 할 때,'open64 ("/ dev/dtrace/helper", O_RDWR) \t \t = 3'이 호출은 나타나지 않고' open64 ("/ devices/pseudo/dtrace @ 0 : 도우미", O_RDWR) = 3'. 단서처럼 들립니다 .-) – pushy

1

최신 Java 6 업데이트 (6u27)로 시도해보십시오.

+0

문제를 해결할 가능성은 낮습니다. 솔라리스에 라이브러리 패치, 특히 C++ 런타임 패키지가있는 것이 더 나은 접근 방법입니다. – jlliagre

관련 문제