WebLogic Server的异常高 CPU 占用率(4)
时间:2009-05-21 18:30来源:dev2dev 作者: 点击:575次
AIX 执行: ps -mp WLS_PID -o THREAD 以查找正在占用
CPU 的 tid。 您应当查看CP列(表示 CPU 占用率),看其中哪些线程的此项值比较高并从中挑选一个线程。 通过执行以下命令对服务器进行
Thread Dump: kill -3
USER PID PPID TID ST CP PRI SC WCHAN F TT BND COMMAND
usera 250076 217266
- A 38 60 72 * 242011 pts/0 -
/wwsl/sharedInstalls/aix/jdk130/...
-
- - 315593 Z 0 97 1 -
c00007 - - -
-
- - 344305 S 0 60 1 f1000089c020e200
400400 - - -
-
- - 499769 S 0 60 1 f1000089c0213a00
400400 - - -
-
- - 540699 S 0 60 1 f100008790008440
8410400 - - -
-
- - 544789 S 0 60 1 f100008790008540
8410400 - - -
-
- - 548883 S 0 60 1 f100008790008640
8410400 - - -
-
- - 552979 S 0 60 1 f100008790008740
8410400 - - -
-
- - 565283 Z 0 60 1 -
c00007 - - -
-
- - 585783 S 0 60 1 f100008790008f40
8410400 - - -
-
- - 589865 Z 0 80 1 -
c00007 - - -
-
- - 593959 S 1 60 1 f100008790009140
8410400 - - -
-
- - 610365 S 0 60 1 f100008790009540
8410400 - - -
-
- - 614453 S 0 60 1 f100008790009640
8410400 - - -
-
- - 618547 S 0 60 1 f100008790009740
8410400 - - -
-
- - 622645 S 0 60 1 f100008790009840
8410400 - - -
-
- - 626743 S 0 60 1 f100008790009940
8410400 - - -
-
- - 630841 S 0 60 1 f100008790009a40
8410400 - - -
-
- - 634941 S 0 60 1 f100008790009b40
8410400 - - -
-
- - 639037 S 0 60 1 f100008790009c40
8410400 - - -
-
- - 643135 S 0 60 1 f100008790009d40
8410400 - - -
-
- - 647233 S 0 60 1 f100008790009e40
8410400 - - -
-
- - 651331 S 0 60 1 f100008790009f40
8410400 - - -
-
- - 655429 S 0 60 1 f10000879000a040
8410400 - - -
-
- - 659527 S 0 60 1 f10000879000a140
8410400 - - -
-
- - 663625 S 0 60 1 f10000879000a240
8410400 - - -
-
- - 667723 S 37 78 1 f1000089c020f150 400400 - - -
-
- - 671821 S 0 60 1 f10000879000a440
8410400 - - -
-
- - 675919 S 0 60 1 -
418400 - - -
-
- - 680017 S 0 60 1 f10000879000a640
8410400 - - -
-
- - 684115 S 0 60 1 f10000879000a740
8410400 - - -
-
- - 688213 S 0 60 1 f10000879000a840
8410400 - - -
-
- - 692311 S 0 60 1 f10000879000a940
8410400 - - -
-
- - 696409 S 0 60 1 f10000879000aa40
8410400 - - -
-
- - 712801 S 0 60 1 f10000879000ae40
8410400 - - -
-
- - 716899 S 0 60 1 f10000879000af40
8410400 - - -
-
- - 721011 S 0 60 1 f10000879000b040
8410400 - - -
-
- - 725095 S 0 60 1 f10000879000b140
8410400 - - -
-
- - 729193 S 0 60 1 f10000879000b240
8410400 - - -
-
- - 733291 S 0 60 1 f10000879000b340
8410400 - - -
-
- - 737389 S 0 60 1 f10000879000b440
8410400 - - -
-
- - 741487 S 0 60 1 f10000879000b540
8410400 - - -
-
- - 745585 S 0 60 1 f10000879000b640
8410400 - - -
-
- - 749683 S 0 60 1 f10000879000b740
8410400 - - -
-
- - 753781 S 0 60 1 f10000879000b840
8410400 - - -
-
- - 757879 S 0 60 1 f10000879000b940
8410400 - - -
-
- - 761977 S 0 60 1 f10000879000ba40
8410400 - - -
-
- - 766075 S 0 60 1 f10000879000bb40
8410400 - - -
-
- - 770173 S 0 60 1 f10000879000bc40
8410400 - - -
-
- - 774271 Z 0 60 1 -
c00007 - - -
-
- - 778373 S 0 60 1 f10000879000be40
8410400 - - -
-
- - 782467 S 0 60 1 f10000879000bf40
8410400 - - -
-
- - 786565 S 0 60 1 f10000879000c040
8410400 - - -
-
- - 790663 S 0 60 1 f10000879000c140
8410400 - - -
-
- - 794761 S 0 60 1 f10000879000c240
8410400 - - -
-
- - 798859 S 0 60 1 f10000879000c340
8410400 - - -
-
- - 802957 S 0 60 1 f10000879000c440
8410400 - - -
-
- - 807055 S 0 60 1 f10000879000c540
8410400 - - -
-
- - 811153 S 0 60 1 f10000879000c640
8410400 - - -
-
- - 815253 S 0 60 1 f10000879000c740
8410400 - - -
-
- - 819357 S 0 60 1 f10000879000c840
8410400 - - -
-
- - 823447 S 0 60 1 f10000879000c940
8410400 - - -
-
- - 827545 S 0 60 1 f10000879000ca40
8410400 - - -
-
- - 831643 S 0 60 1 f10000879000cb40
8410400 - - -
-
- - 835741 S 0 60 1 f10000879000cc40
8410400 - - -
-
- - 839839 S 0 60 1 f10000879000cd40
8410400 - - -
-
- - 843937 S 0 60 1 f10000879000ce40
8410400 - - -
-
- - 848037 S 0 60 1 f10000879000cf40
8410400 - - -
-
- - 852135 S 0 60 1 f10000879000d040
8410400 - - -
-
- - 856257 S 0 60 1 f10000879000d140
8410400 - - -
-
- - 868527 S 0 60 1 f10000879000d440
8410400 - - -
-
- - 872623 S 0 60 1 f10000879000d540
8410400 - - -
-
- - 876725 S 0 60 1 f10000879000d640
8410400 - - - |
- 通过 kill -3 <WLS_PID> 进行该 WLS_PID 的 Thread Dump
- 检查 ps -mp <WLS_PID> -o THREAD命令所输出的信息。
注意,TID "667723" 在 CP 列中有一个高值(它达到“37”,而其它 TID 几乎为 0)。
- 运行 dbx -a 250076以连接到 WebLogic Server 进程。
- 运行 thread 命令以列出所有本地线程。
下面只显示相关线程的一个代码片断:
|
thread state-k wchan state-u k-tid mode held scope function
.....
$t15 wait
0xf10000879000a140 blocked 659527 k no sys
_event_sleep
$t16 wait
0xf10000879000a240 blocked 663625 k no sys
_event_sleep
$t17 run running 667723 k no sys JVM_Send
$t18 wait
0xf10000879000a440 blocked 671821 k no sys
_event_sleep
$t19 wait
running 675919 k no sys
poll
$t20 wait
0xf10000879000a640 blocked 680017 k no sys
_event_sleep
..... |
- 运行 th info 17 命令以获取关于该本地线程的必要信息:
|
(dbx) th info 17
thread state-k
wchan state-u k-tid mode held scope
function
$t17
run running 667723 k
no sys JVM_Send
general:
pthread addr = 0x3ea55c68 size = 0x244
vp
addr = 0x3e69e5e0 size = 0x2a8
thread errno = 2
start pc = 0x300408b0
joinable = no
pthread_t = 1011
scheduler:
kernel =
user = 1 (other)
event :
event = 0x0
cancel = enabled, deferred, not pending
stack storage:
base = 0x3ea15000 size = 0x40000
limit = 0x3ea55c68
sp = 0x3ea55054 |
- 非常重要说明:在 dbx 提示符下运行“detach”以从 WebLogic 进程中分离。
- 记下上述“pthread_t”的数值,并用来查找 WebLogic Server 进程的 Thread Dump 中的正确线程。
- 从早期进行的 Thread Dump 中,您可以将十六进制号码“1011”与 Thread Dump 中在“native ID”之后的号码进行匹配。
下面是匹配此十六进制号码并造成高 CPU 占用率问题的线程示例:
|
"ExecuteThread: '11' for queue: 'default'" (TID:0x31cf86d8, sys_thread_t:0x3e5ea108, state:R, native ID:0x1011) prio=5
at
java.net.SocketOutputStream.socketWrite(Native Method)
at
java.net.SocketOutputStream.write(SocketOutputStream.java(Compiled
Code))
at
weblogic.servlet.internal.ChunkUtils.writeChunkTransfer(ChunkUtils.java(Compiled
Code))
at
weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java(Compiled
Code))
at
weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java(Compiled
Code))
at
weblogic.servlet.internal.ChunkOutput.checkForFlush(ChunkOutput.java(Compiled
Code))
at
weblogic.servlet.internal.ChunkOutput.write(ChunkOutput.java(Compiled
Code))
at
weblogic.servlet.internal.ChunkOutput.write(ChunkOutput.java(Compiled
Code))
at
weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java(Compiled
Code))
at
weblogic.servlet.internal.ChunkWriter.write(ChunkWriter.java(Compiled
Code))
at
java.io.Writer.write(Writer.java(Compiled Code))
at
java.io.PrintWriter.write(PrintWriter.java(Compiled
Code))
at
java.io.PrintWriter.write(PrintWriter.java(Compiled
Code))
at
java.io.PrintWriter.print(PrintWriter.java(Compiled
Code))
at
java.io.PrintWriter.println(PrintWriter.java(Compiled
Code))
at
examples.servlets.HelloWorldServlet.service(HelloWorldServlet.java(Compiled
Code))
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1058)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:401)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5445)
at
weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java(Compiled
Code))
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3105)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2588)
at
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java(Compiled
Code))
at
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
----- Native Stack
-----
sysSend
JVM_Send
Java_java_net_SocketOutputStream_socketWrite |
确定为什么在您的代码中正在发生这个问题,或者,如果堆栈的最顶端输出来自 WebLogic,请与 BEA 客户支持部门联系
|