为了账号安全,请及时绑定邮箱和手机立即绑定

请问在weblogic jvm parallelgcthreads参数怎么调整?

请问在weblogic jvm parallelgcthreads参数怎么调整?

牛魔王的故事 2019-07-02 10:06:09
weblogic jvm parallelgcthreads参数怎么调整
查看完整描述

3 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

set JAVA_VM=-client
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none
goto continue
:sun_prod_mode
set JAVA_VM=-server
set MEM_ARGS=-Xms768m -Xmx1024m -XX:MaxPermSize=256m
goto continue
一般在文件中,有二处这样的代码存在,一个是使用weblogic自带的jrockit JDK,二是使用sunJDK.这里是以sun JDK为例.
通过修过二处的=-Xms768m -Xmx1024m 可以达到修改JVM目的所在.修改后保存重启即可.
MaxPermSize=256m的介绍:
一般情况下,在分析服务器挂起问题、原因不明的超时或其它引起混乱的不明行为过程中会发现丢失线程问题。在缺省的 WebLogic Server 配置中,Default 队列应当有 15 个执行线程(0 到 14)。下面是一个 Thread Dump 摘录,显示Default队列的 ExecuteThread 13、8、6、5 和 3 丢失。在指示线程已经终结的服务器日志记录中没有任何异常、堆栈跟踪或通知。
线程在抛出未捕获的异常或错误时可能会消失。这种情况会导致服务器挂起,因为其它线程可能在永远不会调用 notify() 的监视器上等待(即,要调用 notify() 的线程已经消失了)。
如果设置 MaxPermSize 能够纠正此问题,有一种可能的解释是 OutOfMemoryException 在某些时候因为没有足够的 MaxPermSize 设置而被抛出。如果线程正在记录此异常,同时又发生另一个异常(例如,另一个 OutOfMemoryException),则线程将不发出任何通知就结束。一直等待该线程调用 notify() 的其它线程将挂起。
排除丢失执行线程故障的检查清单
进行 Thread Dump 并判断是否有任何线程丢失。您应当参考 config.xml 文件以确定在 Thread Dump 中可以看到多少执行线程。如果没有丢失任何 WebLogic 线程,那么您需要判断应用程序创建的线程是否丢失。
在一些情况下,此问题通过在服务器启动时设置 -XX:MaxPermSize JVM 选项得到了解决。MaxPermSize 可以设置为最大堆分配 (mx) 的一半。尝试设置 .XX:MaxPermSize=128m,并不断增大其值直至问题得到解决。
如果这种方法没有起到帮助作用,那么问题可能是应用程序的异常处理功能故障引起的,需要利用调试器进行代码审核或分析才能发现问题根源。有关详细信息,请参阅下列外部资源。

查看完整回答
反对 回复 2019-07-06
  • 3 回答
  • 0 关注
  • 1011 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信