1、问题现象
服务器环境是AIX6.1\WAS7.0,通过topas监控CPU经常出现100%的情况,而且负荷比较轻时,CPU占用率不能也下降。
2、处理步骤
1、通过topas监控可以看到当前占用CPU高的两个java进程,记录下进程号:6619258;
2、通过ps -mp 6619258 -o THREAD 以查找当前进程正在占用 CPU 的线程信息,把输出信息拷贝到文本文件中;
3、通过kill -3 6619258 输出ThreadDump线程执行堆栈快照信息,在当前目录中找到类似javacore.20120322.130602.6619258.0003.txt文件,拷贝到本地;
4、下面分析这两个文件,分析tid线程信息发现有下面标红的几个线程占用CPU比较高:
USER PID PPID TID ST CP PRI SC WCHAN F TT BND COMMAND
root 6619258 1 - A 314 60 108 * 242001 - -1 /was/IBM/WebSphere/AppServer/java/bin/java -
- - - 10616851 S 0 82 1 f1000f0a1000a240 8410400 - -1 -
- - - 11141271 S 0 82 1 f1000f0a1000aa40 8410404 - -1 -
- - - 20971659 S 0 82 1 f1000f0a10014040 8410404 - -1 -
- - - 21168201 R 55 118 0 - 400000 - -1 -
- - - 21299399 S 0 82 1 f1000f0a10014540 8410400 - -1 -
- - - 22544397 S 0 82 1 f1000f0a10015840 8410400 - -1 -
- - - 29294701 S 0 82 1 f1000f0a1001bf40 8410400 - -1 -
- - - 29819073 S 0 82 1 f1000f0a1001c740 8410400 - -1 -
- - - 29884629 R 72 130 0 - 400000 - -1 -
- - - 30212313 S 0 82 1 f1000f0a1001cd40 8410400 - -1 -
- - - 30277691 S 0 82 1 f1000f0a1001ce40 8410400 - -1 -
- - - 34013245 S 0 82 1 f1000f0a10020740 8410404 - -1 -
- - - 34078781 S 0 82 1 f1000f0a10020840 8410400 - -1 -
- - - 34209851 R 69 128 0 - 400000 - -1 -
- - - 34406643 S 1 82 1 f1000f0a10020d40 8410400 - -1 -
- - - 34537533 S 0 82 1 - 418400 - -1 -
5、取这些线程号,转换为16进制的数据,21168201 转换16进制值为0x1430049,可以使用windows的“计算器”工具,先输入10进制数值,然后切换到16进制。
取0x1430049在javacore.20120322.130602.6619258.0003.txt中找到下面一段日志:
3XMTHREADINFO "WebContainer : 3" TID:0x00000000E188B100, j9thread_t:0x000000011A5F0D20, state:CW, prio=5
3XMTHREADINFO1 (native thread ID:0x1430049, native priority:0x5, native policy:UNKNOWN)
4XESTACKTRACE at org/apache/regexp/RECompiler.setNextOfEnd(RECompiler.java:209(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.expr(RECompiler.java:1193(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.terminal(RECompiler.java:866(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.closure(RECompiler.java:942(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.branch(RECompiler.java:1151(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.expr(RECompiler.java:1203(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.compile(RECompiler.java:1281(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RE.<init>(RE.java:495(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RE.<init>(RE.java:480(Compiled Code))
4XESTACKTRACE at com/sbdcpn/utils/Stringvalidator.getRegularObj(Stringvalidator.java:173(Compiled Code))
4XESTACKTRACE at com/sbdcpn/utils/Stringvalidator.validValue(Stringvalidator.java:150(Compiled Code))
4XESTACKTRACE at com/sbdcpn/utils/tools/StringFormat.StringFormatToDate(StringFormat.java:40(Compiled Code))
4XESTACKTRACE at com/sbdcpn/page/utils/PageUtilMethod.getDataValue(Unknown Source:279(Compiled Code))
4XESTACKTRACE at com/sbdcpn/page/taglib/IteratorResultTag.convertFormat(IteratorResultTag.java:697(Compiled Code))
4XESTACKTRACE at com/sbdcpn/page/taglib/IteratorResultTag.formatResult(IteratorResultTag.java:671(Compiled Code))
4XESTACKTRACE at com/sbdcpn/page/taglib/IteratorResultTag.doAfterBody(IteratorResultTag.java:372(Compiled Code))
4XESTACKTRACE at com/ibm/_jsp/_grid_5F_plan_5F_query._jspService(_grid_5F_plan_5F_query.java:1889(Compiled Code))
29884629 转换为16进制值为0x1C800D5,查找日志为:
3XMTHREADINFO "WebContainer : 8" TID:0x00000000E22E7600, j9thread_t:0x000000011FBE1500, state:CW, prio=5
3XMTHREADINFO1 (native thread ID:0x1C800D5, native priority:0x5, native policy:UNKNOWN)
4XESTACKTRACE at org/apache/regexp/RECompiler.setNextOfEnd(RECompiler.java:207(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.expr(RECompiler.java:1194(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.terminal(RECompiler.java:866(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.closure(RECompiler.java:942(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.branch(RECompiler.java:1151(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.expr(RECompiler.java:1203(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RECompiler.compile(RECompiler.java:1281(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RE.<init>(RE.java:495(Compiled Code))
4XESTACKTRACE at org/apache/regexp/RE.<init>(RE.java:480(Compiled Code))
4XESTACKTRACE at com/sbdcpn/utils/Stringvalidator.getRegularObj(Stringvalidator.java:173(Compiled Code))
4XESTACKTRACE at com/sbdcpn/utils/Stringvalidator.validValue(Stringvalidator.java:150(Compiled Code))
4XESTACKTRACE at com/sbdcpn/utils/tools/StringFormat.StringFormatToDate(StringFormat.java:40(Compiled Code))
4XESTACKTRACE at com/sbdcpn/page/utils/PageUtilMethod.getDataValue(Unknown Source:279(Compiled Code))
4XESTACKTRACE at com/sbdcpn/page/taglib/IteratorResultTag.convertFormat(IteratorResultTag.java:697(Compiled Code))
4XESTACKTRACE at com/sbdcpn/page/taglib/IteratorResultTag.formatResult(IteratorResultTag.java:671(Compiled Code))
4XESTACKTRACE at com/sbdcpn/page/taglib/IteratorResultTag.doStartTag(IteratorResultTag.java:289)
4XESTACKTRACE at com/ibm/_jsp/_grid_5F_plan_5F_query._jspService(_grid_5F_plan_5F_query.java:1499)
跟踪其它几个占用CPU高的几个线程,发现都是这段代码有问题。
6、优化程序后,不使用org/apache/regexp/RECompiler包,而采用java自带的
Pattern p = Pattern.compile(regex);
ret = p.matcher(value).lookingAt();
问题排除。
分享到:
相关推荐
IBM aix6.1系统镜像百度网盘下载地址,内有本人QQ,失效可以联系我
一份介绍在AIX6.1上安装Orale11gR2的文档,比较少见,在此共享。
IBM AIX6.1环境下安装、卸载Java JRE、SDK,配置用户环境变量,搭建Java开发、运行环境。
AIX6.1如何安装DB2AIX6.1如何安装DB2AIX6.1如何安装DB2AIX6.1如何安装DB2
AIX文件同步复制工具RSYNC,rsync-3.1.2 for aix6.1。。。
AIX6.1系统安装(串口)配置手册v1.0 AIX6.1系统安装(串口)配置手册v1.0是IBM开发的 Unix 操作系统AIX的安装和配置指南。下面是该手册中提到的重要知识点: 一、AIX安装方式简介 AIX系统可以通过不同的方式安装,...
python-2.5.2-1.aix6.1.ppc.rpm python 2.5.2 for AIX 6.1 PowerPC PPC RPM
aix6.1补丁包,由于体积上传限制,分成十份分别打包。
此文档是本人在aix6.1上安装oracle10g后整理的,按照本文当可以完成oracle10g在aix6.1上的安装
本文档描述 在AIX 6.1下 WAS7.0的安装 和集群,文档经过项目实践整理写出来,有多图,比较容易上手 1.安装AIX操作系统以及AIX系统光盘上面相关的软件包 2.安装配置WAS 7.0 3.(图例说明WAS集群工作原理) 4.安装...
IBM AIX6.1操作系统管理.pdf
AIX6.1(6100-03)中文语言bff安装文件包,从操作系统安装光盘上挑出,并安装验证,包含简体中文的IBM-eucCN(zh_CN)和UTF-8(ZH_CN)两种编码格式。下载安装包,上传服务器,解tar后,运行一下命令安装,安装后locale -...
AIX6.1默认是没有安装SSH服务的,要使用SSH连接AIX服务器,必须手动安装OpenSSH软件。 附件为ssh for aix6.1,附安装文档,亲测可用。
aix6.1补丁包,由于体积上传限制,分成十份分别打包。
aix6.1命令参考大全
AIX6.1安装步骤详细图解不
本压缩包中包含libcurl的安装文件及openssl的安装文件并且附带编译步骤,可直接再aix6.1系统中编译出64bit licurl.a引用该动态库即可实现c语言在aix系统编写http及https应用程序,本人亲自测试通过,欢迎下载
AIX6.1环境下WAS7.0安装配置步骤[汇编].pdf
aix6.1补丁包,由于体积上传限制,分成十份分别打包。
aix_6.1_安装中文字符 适用于aix上安装中文字符集