JVM调整:应对jvm crash

来源:百度文库 编辑:神马文学网 时间:2024/09/29 23:24:04
半个月来,新的网站服务器运行可靠性急遽下降,主要原因是jvm crash。而引起jvm crash的原因也都与java GC(Garbage Collection)相关。
查了一下sun的文档“Trouble-Shooting and
Diagnostic Guide",总算有了点初步的认识。检查4个jvm 崩溃时的文档(hs_err_pidXXXX),原因完全一致:
An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0x010d2d9e, pid=8089, tid=5417904
#
# Java VM: Java HotSpot(TM) Server VM (1.5.0_07-b03 mixed mode)
# Problematic frame:
# V [libjvm.so+0x3efd9e].......................
再查jboss的文档,初步判断jvm崩溃的原因是permsize不足所致。因为系统大量使用了spring beans,jvm需要较多地使用 Permanent Generation Heap来存储reflective data。
解决方案是:在JAVA_OPTS加上-XX:MaxPermSize=128m,jdk5.0默认的初始值为8Mb(client)/16Mb(server),最大值为64Mb.
现在Perm Generation只是使用了68%,而之前4次jvm崩溃是,该值均为99%.
新服务器的可用性问题是否因此得到解决,还有待观察。