朋友求助:生产服务器一台AIX小机WAS进程占用CPU率较高引发频繁报警,而此前该服务器一直正常。
系统环境:AIX 5.3/WAS6.1
发生故障现象时的截图如下:
问题处理步骤
1、首先通过topas监控可以看到当前占用CPU率较高的那个java进程,记录下进程号:1396916;
2、通过ps -mp 1396916 -o THREAD 以查找当前进程正在占用 CPU 的TID线程信息,把输出信息拷贝到文本文件中;注意查看“CP”列(表示 CPU 占用率),看其中哪些线程的此项值比较高并从中挑选出线程。
$ ps -mp 1396916 -o THREAD
USER PID PPID TID ST CP PRI SC WCHAN F TT BND COMMAND
waSUSEr 1396916 446514 - A 286 60 157 * 202001 - - /usr/was61/WebSphere/AppServer/java/bin/java -Declipse.
- - - 311297 R 63 124 0 - 400000 - - -
- - - 372769 S 0 82 1 f100070f10005b40 8410400 - - -
- - - 389319 S 0 60 1 f1000100101f15d8 410400 - - -
- - - 495815 S 0 82 1 f100070f10007940 8410400 - - -
- - - 524499 S 0 82 1 f100070f10008040 8410400 - - -
- - - 573567 S 0 82 1 f100070f10008c40 8410400 - - -
- - - 929945 S 0 82 1 f10002000715d0c8 400400 - - -
- - - 942239 S 0 82 1 f100070f1000e640 8410400 - - -
- - - 991485 S 11 89 1 f100070f1000f240 8410400 - - -
- - - 999521 S 0 70 1 f100070f1000f440 8410400 - - -
- - - 1048809 S 0 82 1 f100070f10010040 8410400 - - -
- - - 1061013 R 71 60 0 - 400000 - - -
- - - 1064987 S 0 82 1 f100070f10010440 8410400 - - -
- - - 1126635 S 0 82 1 f100070f10011340 8410400 - - -
- - - 1163499 S 0 82 1 f100070f10011c40 8410400 - - -
- - - 3166517 S 0 82 1 f100070f10830540 8410400 - - -
- - - 3285305 S 0 82 1 f100070f10832240 8410400 - - -
- - - 3428667 R 74 60 0 - 400000 - - -
- - - 3441043 Z 0 70 1 - c00001 - - -
- - - 3555589 S 0 82 1 f10002000bcab0c8 400400 - - -
- - - 3559823 S 0 82 1 f100070f10836540 8410400 - - -
- - - 3571987 S 0 82 1 f100070f10836840 8410400 - - -
3、通过kill -3 1396916 输出ThreadDump线程执行堆栈快照信息,在/usr/was61/WebSphere/AppServer/profiles/AppSrv01/temp目录中找到类似javacore.20130219.174013.1396916.0012.txt文件,拷贝到本地;
4、下面将PS中占用CPU率较高的这三个线程号311297、 1061013、 3428667分别转成16进制的数据(分别为4C001、103095、34513B),在JAVACORE文件中来对应查找并进行分析。
取4C001在javacore.20130219.174013.1396916.0012.txt中找到下面一段日志:
3XMTHREADINFO "WebContainer : 36" (TID:0x0000000117C92900, sys_thread_t:0x000000011AFD19B8, state:CW, native ID:0x000000000004C001) prio=5
4XESTACKTRACE at sun/awt/color/CMM.cmmColorConvert(Native Method)
4XESTACKTRACE at sun/awt/color/ICC_Transform.colorConvert(ICC_Transform.java:888(Compiled Code))
取103095在javacore.20130219.174013.1396916.0012.txt中找到下面一段日志:
3XMTHREADINFO "WebContainer : 35" (TID:0x0000000115FF2F00, sys_thread_t:0x0000000119F4DA58, state:CW, native ID:0x0000000000103095) prio=5
4XESTACKTRACE at sun/awt/color/CMM.cmmColorConvert(Native Method)
4XESTACKTRACE at sun/awt/color/ICC_Transform.colorConvert(ICC_Transform.java:888(Compiled Code))