关于稽查二期 xxxx 系统某节点宕机问题,查看日志如下:
####<2017-9-19 下午 04 时 36 分 20 秒 CST> <Error> <Kernel> <yxjc_2q_test> <sgpmmp_app>
<[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>>
<> <> <1505810180056> <BEA-000802> <ExecuteRequest failed
java.lang.OutOfMemoryError: GC overhead limit exceeded.
java.lang.OutOfMemoryError: GC overhead limit exceeded
初步分析:内存溢出
解决方案:在 setDomainEnv.sh 里将 MaxPermisize 设置为 1024m。
对于 WebLogic 挂起、宕机问题分析以及优化总结
一.WebLogic 挂起:
1.表现现象
① 服务器不再响应请求,页面持续好久打不开
② 请求超时
③ 请求处理的时间越来越长
通常,服务器挂起不代表服务器崩溃,进入到控制台查看其 server 的实例状态为 Running,
进入到请求队列中查看,发现空闲执行线程没有了。
2.服务器挂起原因
(1)weblogic 各个线程队列的工作原理
Execute Queue
Weblogic.admin.HTTP:这个是供与管理控制台的通信用
Weblogic.admin.RMI:这个在管理服务器与被管服务器上都有的队列,他是供管理的交通之
用
Weblogic.kernel.Default:这个是执行队列线程
Weblogic.kernel.System:这个是 weblogic 自用
其中底层原理是 ListenThread 传入 socket reader 线程池(本地性能包)执行线程池,对每个
server 做 threaddump 的时候正常可以看到包含 socket reader 或者是 ListenThread 的线程信
息,如果没看到 socket reader 或者是 ListenThread,那么这个 server 工作是不正常的,此时
server 可能处于 fail 状态。
ListenThread 负责响应所有请求,然后传入给 socket reader 线程,socket reader 线程接受来
自监听线程队列的传入请求,并将该请求放入执行线程队列,执行线程负责执行具体的任
何请求。
⑵ 服务器挂起的可能原因
问题名称 问题描述 不正常工作部分
编译导致服务器
挂起
在大量负载情况下 编译造
成服务器挂起
全部
错误导致服务器
挂起
错误,比如轻量型
线程库、造成线程死锁等
执行线程队列
中的服务器挂
起
死锁造成 挂起 执行线程队列
评论0