`
csstome
  • 浏览: 1527128 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Windows下对WebSphere运行时内存溢出.CPU占用率高和自动停止的问题的监控

阅读更多

Windows下对WebSphere运行时内存溢出.CPU占用率高和自动停止的问题的监控

1.       出现内存溢出的时候.

在WebSphere运行的时候,如果出现了内存溢出,那么原因是多样的.可能是因为程序中有不良的代码,引致申请了的内存不能在使用后被释放. 可能因为程序结构不善,引致websphere容器花费大量开销用于优化造成.

这里有一点要特别注意,内存溢出的时候,通常的表现是Websphere的服务没有了响应,所以当服务没有响应的时候,我们可以假设其为内存溢出,然后按步骤做相应的信息收集.

无论哪种原因. 内存溢出的问题可以分成两类.

  NATIVE 这一类内存溢出,是整个Websphere进程在操作系统中的内存溢出,Websphere自身已经不能控制

    HEAP 这一类内存溢出是在容器管理下的程序运行出现了内存溢出.这一类的溢出能够在websphere的javacore中找到信息(下面我们会再次提到.)



先说一下,出现NATIVE类内存溢出的时候要如何处理.

    要对Websphere进行设置.开放详细垃圾收集选项.
步骤如下.(Webshpere版本 6.0.2.7)

在浏览器中输入http://服务器ip:9060/ibm/console 进入Websphere 管理控制台-> 登录->服务器->应用程序服务器->在服务器列表中选择需要调试的服务器->java和进程管理->进程定义->java虚拟机->将详细垃圾回收选项选上.

     使用userdump工具生成系统的内存境像,然后通过对境像的分析定位出现内存溢出的进程(userdump工具的下载路径: http://download.microsoft.com/do ... 5/EN-US/Oem3sr2.zip )
首先运行netstat -an > netstat_before.out 将收集数据时的网络状态记录下来.

打开Websphere的SystemOut.log文件,将文件最近的一次服务器启动记录找到.在这个记录中会找到现在正在运行并发生内存溢出的 java进程的进程号.(如果最近一次启动服务器是失败的,那么在服务器对应的log目录中能找到一个server_name.pid文件记录中找到对应 的进程号.)

然后在windows的命令行模式下,运行

userdump PID

这个PID就是先前的步骤中找到的websphere进程号

这样会生成一个叫java.dmp的文件. 将其改名成java1.dmp.

两分钟后再运行多一次userdump.生成的文件改名为java2.dmp.

两分钟后再运行多一次userdump.生成的文件改名为java3.dmp.

这样就能生成用于分析的系统内存映像文件.



(如果上面的步骤出现了问题,例如生成java.dmp的过程不能完成.还可以使用dr. watson强制生成userdump文件.方法如下:

在命令行中运行:

drwtsn32 -p pid

生成的userdump文件会放在

operating_system_root\Documents and Settings\
All Users\Application Data\Microsoft\Dr Watson

但这种做法的会同时停止java.exe进程.因此只有其它的生成userdump方法失效的情况下才合适使用.)



  使用wsadmin生成javacore,从javacore看出内存问题. (具体步骤请参阅2出现CPU占用率高的时候)


2.       出现CPU占用率高的时候

如果在WebShpere运行的过程中出现了高CPU占用率的引起的原因是多样的.但这里要分清楚瞬时高CPU占用率和占用率居高不下两种情况. 前者是正常的,因为有很多不同的程序在系统中运行,因为进程间的优先级,和CPU的能力所致,很多时候会出现一小段时间内CPU占用率的大幅提高.我们这 里要描述的问题,是指CPU占用率高上去之后下不来的情况.

     先要在Windows系统中设置CPU占用率的监控.步骤如下.

在Windows的管理工具中选择 性能  打开性能监控器

 
点击工具栏上的”添加”增加监控内容,将右边方框中所有的java线程都进行选择.左边则选择Processor Time , ID Process ,ID Thead,如图

 
同样的操作,在计数器日志中要设置.

选择性能监控器中的计数器日志,点击右键->新建日志设置->输入名称->确定->添加计数器->然后仍是将所有的java线程选中,也选上Processor Time , ID Process ,ID Thead

如是图
 
这样做的目的,是让性能监控中内容,能在固定的log文件中记录下来.

       当cpu出现高占用率的时候,要在windows命令行方式中手动生成websphere的javacore,步骤如下.

netstat -an > netstat_before.out

这个命令用于记录生成javacore时的网络状况.



在没有开启websphere soap安全方式情况下,使用

wsadmin.bat

打开websphere管理台.

如果在SOAP方式下,就要加入参数,命令行格式如下:

wsadmin.bat [-host host_name] [-port port_number] [-user userid[-password password]

在启动了wsadmin的状态后,运行以下命令设置好环境

wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]

上面的server1就是要生成javacore的服务器的名称



环境设置好后,在wsadmin状态下运行

wsadmin>$AdminControl invoke $jvm dumpThreads

这样会生成一个javacore.

然后2分钟后再次运行



然后2分钟后再次运行



这样,就能在%Websphere%/AppServer/profiles/服务器名/ 这个目录下找到手动生成的三个javacore

        生成了javacore后,就通过性能监控器中,找到CPU占用率高的线程,然后我们可以看到下图

 
ID Thread中就是占用率高的线程号. 这个号是十进制的,将其转换成16进制的数字.例如图中的数字的十六进制形式是0xD98

这样我们能在刚才生成的javacore中找到这样的句子

"SoapConnectorThreadPool : 0" (TID:0x10A25A98, sys_thread_t:0x24A31B30, state:R, native ID:0xD98) prio=5

这个十六进制的进程号就是对应javacore中native id = 0xD98的内容,这样我们就能大致知道这个引起cpu占用率高的线程在做什么,然后进行排错调试.





3.       出现自动停止的问题的时候.

当出现了更严重的情况,websphere的线程自动停止了.那以首先要需要两个方面的数据.

        程序中止时的自动NATIVE 的内存镜像.

这个工作需要借助Dr.Watson,

点击开始菜单->运行….->运行

drwtsn32

打开dr.Watson程序的窗口

 
对Dr.Watson的设置如图中所视,特别注意的内容是设置故障转储目录.当程序中止,我们在所设置的目录中找到需要的userdump文件.

设置好后

点击开始菜单->运行….->运行

drwtsn32 –i

这样,dr.Watson被设置为系统默认的调试器,会在程序中止时生成内存映像

至于Heap类型的内存映象,因为在Webshpere在中止时,会自动生成javacore文件,因为在程序中止后,直接到

%Websphere%/AppServer/profiles/服务器名/ 这个目录下找到自动生成的最新javacore就可以了





以上三个问题中所收集的数据,可以进行自己分析,对于javacore文件,分析工具是mddfj.IBM的网站上有相关文章介绍,在这里不再赘述.

也可以将这些文档发给IBM的客户服务中心,让他们的技术人员帮助分析.

分享到:
评论

相关推荐

    java IBM websphere 内存溢出 javacore deapdump CPU内存分析工具

    通常,它们会被配置为在特定条件下运行,例如当CPU使用率过高或内存达到一定阈值时,以帮助实时监控和诊断。 `ha457.jar` 和 `jca4614.jar` 是IBM WebSphere相关的库文件,可能包含与高可用性(HA)和Java连接器(JCA)...

    websphere内存溢出.pdf

    ### Websphere内存溢出问题解析与解决方案 #### 一、引言 Websphere作为一款广泛应用于企业级环境的应用服务器软件,其稳定性和性能至关重要。然而,在实际使用过程中,经常会遇到内存溢出(Out Of Memory, OOM)的...

    websphere内存溢出

    1. **内存溢出概述**:内存溢出(Out Of Memory,OOM)是Java应用中常见的问题,当应用程序请求的内存超过了JVM分配的内存空间时,就会出现这种情况。对于WebSphere来说,这可能表现为服务器崩溃、应用程序响应缓慢...

    websphere查看内存溢出工具ha456.jar

    在Java应用程序中,内存溢出(Out of Memory)是一个常见的问题,尤其是在处理大量数据或者长时间运行的服务时。ha456.jar工具通过深入分析Websphere的内存使用情况,帮助开发者定位并解决这个问题。 内存溢出发生...

    com.springsource.com.ibm.websphere.uow-6.0.2.17.jar

    jar包,官方版本,自测可用

    WebSphereMQ_V7.5.0.2_for_Windows.part4.rar

    WebSphere® MQ (也称MQSeries)以一致的、可靠的和易于管理的方式来连接应用程序,并为跨部门、企业范围的集成提供了可靠的基础。通过为重要的消息和事务提供可靠的、一次且仅一次的传递,Websphere MQ 可以处理...

    Prentice.Hall.PTR.IBM.WebSphere.Deployment.and.Advanced.Configuration.Aug.2004.eBook-DDU.chm-2

    Prentice.Hall.PTR.IBM.WebSphere.Deployment.and.Advanced.Configuration.Aug.2004.eBook-DDU.chm

    websphere安装详细步骤WebSphere v6.1.0.0 for windows

    WebSphere是IBM开发的一款企业级应用服务器,是Java EE(现在称为Jakarta EE)平台的实现,用于构建、部署和管理分布式...在实际操作过程中,可能会遇到各种问题,但随着对WebSphere的理解加深,这些问题都将迎刃而解。

    websphere cpu性能问题

    【描述】:本文将深入探讨当Websphere Application Server (WAS)出现异常高的CPU占用率时,如何识别问题源头并采取相应的故障排除措施。这涉及到对操作系统层面的数据收集、线程分析以及使用调试工具如dbx进行详细...

    webSphere-jps-plugin.jar

    webSphere-jps-plugin.jar

    WebSphereMQ_V7.5.0.2_for_Windows(4-1)

    WebSphere® MQ (也称MQSeries)以一致的、可靠的和易于管理的方式来连接应用程序,并为跨部门、企业范围的集成提供了可靠的基础。通过为重要的消息和事务提供可靠的、一次且仅一次的传递,Websphere MQ 可以处理...

    websphere_plugin-cfg.xml文件内容解析.pdf

    websphere_plugin-cfg.xml 文件内容解析 概览 websphere_plugin-cfg.xml 文件是 IBM WebSphere 服务器插件配置文件,用于定义插件的配置信息。该文件包含多个元素和属性,用于控制插件的行为和性能。了解该文件的...

    WebSphere CPU高分析工具

    标题中的“WebSphere CPU高分析工具”指的是针对IBM WebSphere Application Server(简称WAS)的一种性能监控和诊断工具,主要用于解决服务器CPU使用率过高的问题。WebSphere是IBM提供的一个企业级Java应用服务器,...

    WebSphere7[1].0在Windows下的安装.doc

    【WebSphere Application Server 7 在 Windows 下的安装】 WebSphere Application Server 7 是 IBM 提供的一款企业级的应用服务器,用于部署和管理Java EE应用程序。在Windows操作系统上安装WebSphere Application ...

    websphere_uow_api.jar

    还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 websphere_uow_api.jar

    Websphere日常监控手册

    - **性能指标监控**:CPU使用率、内存使用情况、线程状态等,以评估系统整体运行状况。 - **应用响应时间**:监控应用程序响应时间和事务处理效率,及时发现性能瓶颈。 - **日志分析**:定期检查系统日志和应用日志...

    websphere application server 内存分析工具

    在Websphere Application Server中,当服务器遇到严重问题时,例如OutOfMemoryError,系统会自动生成一个heap dump文件,这个文件包含了服务器在崩溃时刻的内存快照。heap dump文件通常位于服务器配置文件(profile...

    WebSphere_MQ_V6.0.zip

    WebSphere MQ,原名MQSeries,是IBM推出的一款企业级的消息中间件产品,它在IT领域扮演着重要的角色,尤其在分布式系统、企业应用程序集成(EAI)以及业务流程自动化中发挥着关键作用。WebSphere MQ V6.0是这个系列...

Global site tag (gtag.js) - Google Analytics