Solaris 10中的Java启动速度很慢
问题描述:
由于Java需要很长时间才能启动,所以我们的solaris机器出现问题。即使是简单的事情,Java的版本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
任何想法?
答
这是在jvm的dtrace初始化中已知的问题。在java 6u25中,我相信每次Sun Alert 1296670.1都会退出。我们在上周的一个重要环境中发现了这个问题,并且痛苦让人难以忍受(如果您需要每分钟运行100个进程,并且他们突然开始花费额外10秒来启动......)。
解决办法,如果你都寄托到您的JVM:
出口DTRACE_DOF_INIT_DISABLE =真
这一直是我们100%成功的,我们不使用JVM特定的DTrace探针,反正。
答
你可以尝试
truss java -version
,看它是否等待很长一段时间在一个特定的系统调用。
+1
好主意,最后一行等待很长时间:'open64(“/ dev/dtrace/helper”,O_RDWR)\t \t = 3'当我在Java5上做一个桁架时,这个调用不会出现,而是调用' open64(“/ devices/pseudo/dtrace @ 0:helper”,O_RDWR)= 3'。听起来像是一个线索:-) – pushy
太好了,谢谢你的更新,我会试试。 – pushy
我们刚刚遇到了与Solaris相同的问题(5.10 Generic_144488-06 sun4u sparc SUNW,SPARC-Enterprise)和Java版本1.6.0_24-b07 - 您的答案拯救了一天!有趣的是,这个问题并没有显示出来,也没有出现在我们所有的系统上(运行相同的操作系统和Java版本) – ktf