这是我以前遇到过的,方法跟上面讲的都差不多。这里写出来,作为参考。CPU 问题如果再出现,请生成 javacore 的同时也按照下面的步骤收集来看 CPU 忙的原因:http://www-01.ibm.com/support/docview.wss?uid=swg21137447CPU资源占用100%的信息收集具体操作步骤:针对在Windows操作...
显示全部这是我以前遇到过的,方法跟上面讲的都差不多。这里写出来,作为参考。
CPU 问题如果再出现,请生成 javacore 的同时也按照下面的步骤收集来看 CPU 忙的原因:
http://www-01.ibm.com/support/docview.wss?uid=swg21137447CPU资源占用100%的信息收集具体操作步骤:
针对在Windows操作系统上Virtual Machine (JVM™)占用CPU资源接近100%,或者其它高使用率的情况,这里列出了解决问题所涉及的文档。
Windows NT/2000自带有一个性能查看器(Microsoft任务管理器的一部分),借助于这个性能查看器,我们可以判断哪个java进程在占用CPU。
当应用程序服务器进程遇到问题是请收集如下信息:
__1、通过开始菜单,选择“程序->管理工具->性能管理”(你也可以选择“开始菜单->设置->控制面板”,双击“管理工具”,然后双击“性能”来打开性能管理工具)。
__2、性能数据可以搜集到一个log文件,对这个log文件进行分析,然后通过性能管理器返回。在这个性能管理器中,展开性能日志和警报,右键点击计数器日志,选择新建日志设置。
__3、键入一个日志设置名称,然后点击确定。
__4、点击“加入”,以加入到计数器。
__5、在“性能对象”中,往下滚动窗口,选择线程作为当前对象。
__6、点击“从列表选择计数器”(默认),然后选择下面三个计数器:
Counter = % Processor Time
Counter = ID Process
Counter = ID Thread
__7、点击“从列表中选择实例”,然后选择所有Java线程,如下图所示:
__8、点击“添加”加入新的属性,谈后点击“关闭”。
__9、日志记录马上启动,日志文件按钮变成绿色。
__10、一旦性能降低文档收集完成,停止性能管理记录。从性能管理工具中的计数器窗口中右键点击日志名称,然后点击停止。需要发送到IBM的日志文件显示在“日志文件名”那一栏。
__11、对这个java进程生成一个java.dmp,运行下列命令:
userdump
__12、收集下列文件:
性能日志
产生的javacore*.txt文件
性能降低文档中的其它信息
位于路径/profiles//logs/下的所有文件
netstat -an > netstat_before.out
执行以下命令收集数据
wsadmin.bat [-host host_name] [-port port_number] [-user userid[-password password]
用登陆 WAS 管理控制台的用户/密码,端口在管理控制台-〉服务器-〉WebSphere_Portal -> 端口里找到 SOAP 的端口,例如您这里应该是 10033
wsadmin -host yourhost -port 10033 -user wpsadmin -password wpsadmin
wsadmin> set jvm [$AdminControl completeObjectName type=JVM,process=WebSphere_Portal,*]
然后每隔两分钟执行:
wsadmin>$AdminControl invoke $jvm dumpThreads
看 D:\ibm\WebSphere\profiles\wp_profile 目录下是否生成 javacore 开头的文件。
===================
如果没有请先提前下载好微软的 userdump 工具:
http://support.microsoft.com/?scid=kb%3Ben-us%3B936917&x=10&y=8
出问题时再执行:
userdump portal_pid
收集完之后请执行:
netstat -an > netstat_after.out
解压PsTools工具到C盘:C;\PsTools,并将startpslist.bat也拷贝到这个目录,这些我都已经放在相应C盘里面了。
当CPU出现高的情况时执行.
1:运行cmd,然后到cd C;\PsTools
2:执行C:\Documents and Settings\Administrator>cd C:\PsTools
接着执行 C:\PsTools>pslist.exe
3:C:\PsTools>在这里输入命令startpslist.bat java相关的使用率比较大的pid,例如:假如db2syscs.exe pid为 7604 cpu使用率比较高
C:\PsTools>startpslist.bat 7604
回车后一小会,在C:\PsTools下面将产生pslistlog.7604文件
2分钟,并按ctrl+C结束
4:按照第3步,继续执行其他与java相关进程的pid收起