weblogic挂起
1. 表现现象
服务器不在响应请求,页面很久还打不开
请求超时
请求处理的时间越来越长
通常,服务器挂起不会表现为服务器崩溃,进入控制台查看server实例状态,仍然是RUNNING状态,进到请求队列里面查看,发现空闲执行线程没有了
⒉分析服务器挂起的原因
⑴ webloigc各线程队列工作原理
Execute Queue
weblogic.kernel.Default: 执行队列线程
服务器挂起的可能原因
问题名称 问题描述 不正常工作部分
JSP 编译导致服务器挂起 在大量负载情况下 JSP 编译造成服务器挂起 全部
JVM 错误导致服务器挂起 SUN JVM 错误,比如轻量型线程库、造成线程死锁等 执行线程队列
JDBC 中的服务器挂起 死锁造成 JDBC 挂起 执行线程队列
JSP 导致服务器挂起 servlet 时间的 JSP 错误设置,比如 PageCheckSeconds 全部
垃圾回收导致服务器挂起 垃圾回收花费太多时间 全部
线程占用导致服务器挂起 线程全部被占用,没有线程可用于新工作 执行线程队列
应用程序死锁导致服务器挂起 应用程序死锁 - 线程锁定资源 1,然后等待锁定资源 2。另一个线程锁定资源 2,然后等待锁定资源 1 执行线程队列
EJB_RMI 服务器挂起 RMI、RJVM 响应 - 所有绑定线程等待 RJVM、RMI 响应 weblogic.admin.RMI
网络IO资源限制 如等待网络IO资源 socket reader线程
大量高并发请求 大量高并发请求 执行线程队列
大量耗时操作导致执行线程用尽 如从数据库中加载大量数据 执行线程队列
ping挂起的server实例。
如果可以ping通,说明服务器可能未挂起,只是执行线程在执行耗时的操作未返回,此时可做thread dump进一步分析执行线程执行什么操作.
如果ping不通,则说明服务器确实挂起.
②查看执行线程队列,查看空闲线程数,如果线程数为空,查看每个线程是否正常处理,如都卡在某一个请求上,则此请求对应的操作可能有问题,在执行耗时操作。如果确实是高并发引起的,则考虑增大执行线程数;如果线程数仍有空闲,则问题可能发生在socket reader线程池上,可能socket reader未配置使用本地性能包或者确实由于高并发请求引起。
weblogic宕机
⒈表现现象
进入控制台查看server实例状态,是SHUTDOWN状态
⒉分析服务器宕机的原因
问题名称 问题描述 不正常工作部分
硬件问题 如磁盘损坏、CPU烧起来等
非法访问地址错误 如JVM自身bug导致访问地址出错
OOM内存溢出问题 应用程序导致内存溢出
…… 很多原因
硬件问题不可避免,如果出现此问题,只能修复或者更换;
非法访问地址错误涉及到的可能是系统级的错误,我没能力分析,各位可以补充下。
OOM问题是我们应用中导致宕机的主要原因,下面将针对OOM主要分析。
⒊ OOM宕机问题分析排查
⑴ threaddump 和heapdump分析
服务器宕机的时候一般都会产生javacore和heapdump文件,我们最直接的可以拿来分析,javacore是关于CPU当前运行堆栈等相关信息 ,heapdump是目前内存的使用情况,两者结合起来分析,可以看出哪个点上导致了内存溢出,如果在这个点上确实加载了大量的数据并且创建大量对象,那么可以在这个点上做优化
⑵内存泄露分析
如果在上一步骤中发现近段时间没有加载大数据,那么就有可能是内存泄露问题。内存泄露是比较难跟踪的,需要比较深入分析。以下给出一个简单的分析步骤:
u GC日志分析:
垃圾回收日志(Verbose GC)可以帮我们断定是否发生了内存泄漏,导致JVM宕掉。要获取GC工作日志,我们可以在JVM启动的时候设置一个命令行选项-verbose:gc 或–verbosegc,在AIX机器上该选项为-verbose:gc -Xverbosegclog:gc.log。该选项可以打开一个开关追踪每次垃圾回收循环的内容(This option switches on a substantial trace of every garbage collection cycle.)。生成的详细垃圾回收日志在不同的平台,不同的发布版本上差别很大。从这些日志中,我们可以查看总的heap堆利用情况,用来判断gc是否花费很长时间,gc发生次数是否太多等。
GC日志分析工具,这里推荐使用
IBM Pattern Modeling and Analysis Tool for Java Garbage Collector
回收前和回收后没有发生多大变化,或者回收后一直呈上升趋势,那么基本可以判定发生了内存泄露
u 内存泄露持续跟踪工具
如果在上面的GC日志分析中看到内存发生了泄露,那么下一步就需要定位到底是哪个地方内存发生了泄露。首先检查所有的集合、容器对象,如是否定义了全局的对象数组、对象列表、MAP,在操作这些数组、列表的时候,是否将不用的集合里的引用置为空等。
如果通过上面无法定位,那么这里推荐一款java 系统监控分析的软件Jprofile
(jprofile官方上说支持AIX,不过我在AIX5.3运行,总是报
JVMCI158: Can't load "libjprofiler.a", because load ENOENT on shared library(s)
错误,不知道有哪位高手试成功过,请告知下)
Jprofile的使用请参考相关附件资源.
查看Jprofile分析报告,可以定位到哪个地方发生内存泄露
相关推荐
总结:在分析和解决WEBLOGIC门户系统挂起问题时,需要关注数据库连接池的管理、系统资源限制、JVM内存配置、日志管理、JDBC线程池优化、错误日志分析、目录权限以及应用程序代码质量等多个方面。通过对这些环节的...
【WEBLOGIC服务器挂起问题详解】 WebLogic服务器作为Oracle公司的一款企业级Java应用服务器,其稳定性和性能至关重要。然而,在运行过程中,服务器可能会遇到挂起的问题,这会导致服务响应变慢甚至完全不响应新的...
然而,在实际生产环境中,WebLogic Server可能会遭遇各种故障,其中最为常见的就是服务器宕机或挂起的问题。本文旨在通过分析实际案例来总结WebLogic宕机的原因及应对措施,以期为企业运维人员提供参考。 #### 二、...
### WebLogic 挂起与核心转储解决方法 #### WebLogic系统架构 WebLogic Server 是一款企业级的 Java 应用服务器,由 BEA Systems 开发并维护,后被 Oracle 收购。它提供了丰富的服务,如 J2EE 应用支持、集群功能...
该漏洞是由于 WebLogic 对用户访问限制不当导致,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行拒绝服务攻击,最终造成 WebLogic 挂起或频繁重启崩溃。 2. Oracle WebLogic Server 敏感信息泄露漏洞(CVE-...
Weblogic10_3_0在AIX6_1、JDK1_6下挂起解决方法
CR370915_1030GA.jar 应用程序运行一段时间后无法响应的客户端请求
Weblogic 连接池配置数据库断掉重连的问题 在 Weblogic 中,连接池配置数据库断掉重连是一个非常重要的问题。连接池配置是 Weblogic 中的一种机制,用于管理与数据库的连接。然而,在实际应用中,我们经常会遇到...
在AIX(Advanced Interactive eXecutive)操作系统上运行WebLogic时,可能会遇到各种问题,其中一种常见问题是服务器启动后挂起,这通常与系统配置、内存管理、线程死锁或软件兼容性有关。"weblogic10.0 for aix ...
监控指标包括挂起的请求、最长等待时间和当前等待时间等。WebLogic Server还提供了工作管理器限制调优,包括设置最大线程数限制和容量限制,以避免资源问题导致性能下降。达到容量限制时,HTTP请求会收到HTTP503响应...
WebLogic Server出现挂起(Hang)现象,可能由以下原因导致: 1. **系统内存不足**:当系统内存耗尽时,服务器可能无法响应新的请求。 2. **系统CPU忙**:高负载下,CPU资源被过度消耗,导致其他任务无法及时执行。...
- Server Hang和Crash:服务器挂起(Hang)可能是由于资源耗尽、死锁等原因,崩溃(Crash)可能伴随核心转储(Core dump)。分析核心转储文件可以帮助定位崩溃原因。 5. **问题解决资源** - 官方文档:WebLogic ...
5. Node Manager:运行在物理服务器上的一个进程,用来远程执行AdminServer和Managed Server的启动Start、停止Stop、挂起Suspend、重启Restart操作。该进程与Domain并不关联但是与Machine相关连,如果你想在Admin ...
通过设定合理的JTA超时时间,可以避免长时间等待导致的资源锁定和应用程序挂起,从而提升整体系统的响应速度和可靠性。 ### 5. 连接池管理 `sc>JDBCConnectionPools>JMSC`和`MaximumCapacity:1560`显示了对数据库...
故障排除是系统管理员必备技能,课程教授如何分析和解决WebLogic Server Core Dump、Java虚拟机Core Dump、服务器挂起、CPU利用率过高、内存溢出、JDBC异常以及太多文件打开等问题。 总的来说,WebLogic Server 11g...
建议仅在必要时创建,优先考虑公平份额工作管理器,同时密切监控挂起请求、最长等待时间和当前等待时间,适时调整最大线程数限制,确保MDB等组件高效运行。 ### 综合调优策略 除上述核心点外,Web应用程序、JDBC、...
- **原因分析**:服务器挂起可能是由于死锁、线程饥饿或资源争用导致。 - **解决方案**:通过 Thread Dump 分析线程状态,识别死锁或资源争用的情况;调整并发策略或资源分配策略。 #### High CPU - **原因分析**:...
- **偶发的挂起或异常**:系统间歇性出现故障或延迟。 - **可预测的死锁**:随着时间推移,系统出现频繁的锁定状态。 - **突发性的混乱**:系统在一段时间内运行良好后突然崩溃或出现严重延迟。 #### 操作系统的...
检查服务器日志,使用jstack等工具分析线程状态,寻找可能的挂起原因。服务器崩溃(Crash)通常伴随core dump,分析core dump文件可以帮助确定崩溃的具体原因,如内存错误、代码bug等。 总的来说,处理WebLogic ...