WLS 的异常高 CPU 占用率6

上一篇 / 下一篇  2008-12-16 23:37:33 / 个人分类:Weblogic

  • 文件版本: V1.0
  • 开发商: 本站原创
  • 文件来源: 本地
  • 界面语言: 简体中文
  • 授权方式: 免费
  • 运行平台: Win9X/Win2000/WinXP
Windows51Testing软件测试网y9Rw~ de
51Testing软件测试网 jSzl1K
使用 pslist51Testing软件测试网2u)Y^ DIF-X
您可以在 Windows 中使用 pslist 并获取 java 进程的线程详细信息。 pslist可从以下网址得到:http://www.sysinternals.com/ntw2k/freeware/pslist.shtml
F;DdMJ)|b7~0
p5h] [,h7V*O0运行 pslist -d <Java PID> 并将输出结果重定向到一个文件。51Testing软件测试网vf \/}w!PT

t0Im jJw AC4g0重复几次这个操作,以便您能够看到一种模式。
6S yr%Z` e5V*Hm(\i0您将看到“用户时间”和“内核时间”不断增加。51Testing软件测试网A6{ x^\

:be3s#j)mH~/hB0在若干次迭代后对 WLS 服务器进行 Thread Dump。51Testing软件测试网yR V$Iv
记下步骤 1 中看起来正在增加的线程 ID 号,将十进制值改为十六进制值(您可以使用 Windows 中的计算功能)。51Testing软件测试网9w6xZS,s?6D |!ZT
根据“nid=0x<步骤 3 的十六进制值>”检查 Thread Dump,直到您找到出现问题的线程。51Testing软件测试网)O O @h ac:a
确定为什么在您的代码中会发生这个问题,或者,如果堆栈的最顶端输出来自 WebLogic,请与 BEA 客户支持部门联系。
6`,k@:r Ah0使用 Process Explorer51Testing软件测试网6P0e1y9w+{L#i6B
您还可以使用 Systinternals 提供的 Process Explorerhttp://www.sysinternals.com/ntw2k/freeware/procexp.shtml。该工具直观动态显示 CPU 占用率。 由于 Process Explorer 没有记录功能或历史记录,您必须监视该程序并记录占用几乎全部 CPU 资源的 Java 进程的线程 ID。 若要通过 Process Explorer 达到上述目的:
,Y:X X2v@ Vs Ag4m0
l+L h)l$T-}'c}(P0查找 java 进程,然后右键单击并选择属性。51Testing软件测试网7I!d[)k%@8{,P
单击“Threads”选项卡以显示与此 java 进程关联的所有线程。
^"a%T+k0\j4|AE0您可以单击以“MSVCRT.dll+<一些十六进制偏移量>”形式列出的其中一个线程。51Testing软件测试网;Q"G7]%A%U#^'A)t`
您可以看到在下面窗格中列出的“Thread ID”。51Testing软件测试网uAB \ ~"mI!keL

sI8~c0H^!VKZ0观察哪一个线程占用最多 CPU 资源。
,?U!wM%e)W{0进行 WLS 服务器的 Thread Dump。51Testing软件测试网 vIGdx.V0l&b
记下步骤 4 中看起来正在占用 CPU 的线程 ID 号,将十进制值改为十六进制值(您可以使用 Windows 中的计算功能)。
,w)KKBe0{1\5B Y\0根据“nid=0x<十六进制值>”检查 Thread Dump,直到您找到出现问题的线程。
#Ve%PP;K;v~ M7s0确定为什么在您的代码中会发生这个问题,或者,如果堆栈的最顶端输出来自 WebLogic,请与 BEA 客户支持部门联系。51Testing软件测试网 W0m+d8k(CotQ~T
下面是仅使用 pslist 和 Thread Dump 的步骤示例:51Testing软件测试网WZ`W?%Jd$[(M-T+`
运行 pslist -d 17251Testing软件测试网8r`V.C+m] YL7In
51Testing软件测试网2B8m!a0fF,Ge%r

java 1720:51Testing软件测试网Ml3\1]m
Tid Pri Cswtch State User Time Kernel Time Elapsed Time51Testing软件测试网 nH1\7Cg
1520 8 9705 Wait:UserReq 0:00:23.734 0:00:01.772 0:04:55.26451Testing软件测试网9~-v fsi
1968 9 2233 Wait:UserReq 0:00:04.606 0:00:00.040 0:04:54.874
r9j4Zk%gq01748 15 146 Wait:UserReq 0:00:00.010 0:00:00.010 0:04:54.86351Testing软件测试网g fG6U"mR8Z xmZB+H
1744 11 62 Wait:UserReq 0:00:00.010 0:00:00.000 0:04:54.85351Testing软件测试网_!M j7KW(cjI(a
1420 15 3 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:54.56351Testing软件测试网WlN&DbG
1856 15 7 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:54.563
x"lq2M]%P*~,A*NU9w01860 9 3157 Wait:UserReq 0:00:03.314 0:00:00.160 0:04:54.56351Testing软件测试网yK%`(e4zm }/n}1|
412 15 5888 Wait:DelayExec 0:00:00.000 0:00:00.000 0:04:54.553
1?XF#}/v1C ~B x:j01864 8 3 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:50.56751Testing软件测试网2_;Ao%bdG5j
1660 15 61 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:42.12551Testing软件测试网E0KYL;_,^"^,l8?)n
2020 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:42.025
~w1_S+OQ2XI%z6e01532 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:42.015
b"O F-Q:u;S:uY%_9\0T7J01332 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:42.005
t$SmnS#~l*N01696 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.99551Testing软件测试网Es'M7OW$ox3h2F
2060 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.995
C {4}?2S]%a01552 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.98551Testing软件测试网5nH f j0sZ5s
2072 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.985
](h4U-u V!q0d?02068 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.975
Rq [X$o IQvJ02044 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.97551Testing软件测试网 h]S:F n#[7XL
2000 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.965
Kid_3yY u{ x0588 9 4744 Wait:UserReq 0:00:02.814 0:00:00.110 0:04:41.96551Testing软件测试网,`q9@4g;w@"p_5q
1784 9 132 Wait:UserReq 0:00:00.080 0:00:00.000 0:04:41.955
!Pi3?5r1@01756 9 196 Wait:UserReq 0:00:00.931 0:00:00.000 0:04:41.95551Testing软件测试网-onlg^~
1716 8 6 Wait:Queue 0:00:00.000 0:00:00.000 0:04:41.945
3k4qYKE0{3Uf3n+y01800 9 1457 Wait:Queue 0:00:00.761 0:00:00.210 0:04:41.94551Testing软件测试网oZ6t/RG$?]
1996 8 47 Wait:UserReq 0:00:00.170 0:00:00.000 0:04:41.835
\ E.Z1`/L01992 11 18 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.434
;sf\O?$f q01988 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.424
0A,J5Nt S^p0_+S01984 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.414
ec(Bc%_\;k J,N01976 8 231 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.27451Testing软件测试网k FuB|*E[.yp ^
1956 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.23451Testing软件测试网2l(Vh9h_v\
1740 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.22451Testing软件测试网3},l ? _8h4V5~
1944 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.214
7f%qmDE?"k^01964 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.20451Testing软件测试网 fEx0gS
1972 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.20451Testing软件测试网 G"Fp%WX GTi
1280 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.194
e/S1sU.ct01960 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.194
8ES'lj&{ h,X01872 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.184
Z A!vE_01884 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.18451Testing软件测试网$s5a4w}9\[0h1uD1F{
1952 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.17451Testing软件测试网D8wU N,Qj%z+ro
1940 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.17451Testing软件测试网9m| N&D-hMZ$c8D
1936 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:41.164
!W"S]1[Vmw01932 6 4 Wait:UserReq 0:00:00.010 0:00:00.000 0:04:39.29151Testing软件测试网%Ak6AGb-kU _S
1928 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:31.88051Testing软件测试网,m z7O(G;c|O
1916 8 3 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:31.87051Testing软件测试网^w+^`,fV+B'Xw
1912 8 4 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:31.86051Testing软件测试网0k)a(^bdm
1908 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:31.860
/qz"r T*H3P6f01904 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:31.85051Testing软件测试网Kr:tZ3r$b3F
1900 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:31.840
%KSc4D1Z.yg%p{9k~w01896 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.889
by/CQI02064 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.879
B;R(d8]"XD(r7{01828 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.86951Testing软件测试网VE.ae3_zd3Z R,{
1892 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.859
4Z%Mm|k]01888 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.859
,J| l ? s!UnT01852 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.849
z0z-? H)lAg*D a01848 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.849
$]-F"_#f*PCS/fO01844 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.83951Testing软件测试网r/D?0DDz
1412 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.83951Testing软件测试网+Dg)Iw~"K{
332 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.829
!l s)b"z"T_01840 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.82951Testing软件测试网0x9r$_!~3Qq
1440 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.81951Testing软件测试网(Mq6ds6Vw7j-`D
1796 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.81951Testing软件测试网B%tO0v:y w3vL?c5V"|
1240 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.80951Testing软件测试网Em.E"jZ+|H}.Z4[h]
568 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:30.80951Testing软件测试网)Z#T$]Zq*FB
1732 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:29.797
tM6eNf-U(z(C4i02056 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:15.00651Testing软件测试网 lA%KN.lK
1688 8 4 Wait:UserReq 0:00:00.000 0:00:00.010 0:04:14.99651Testing软件测试网uk'kbF ?
1776 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:14.986
aP{,Q9J Q01648 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:14.976
p A5X^-~yj0{.X01768 8 3 Wait:UserReq 0:00:00.000 0:00:00.000 0:04:14.976
X%~[[ A3X3K!G0284 8 188 Wait:UserReq 0:00:00.190 0:00:00.040 0:04:08.88751Testing软件测试网[l C2fh(z(U
576 9 123 Wait:UserReq 0:00:00.070 0:00:00.020 0:04:07.51551Testing软件测试网nD|1mq.LY0H

F7xZ.En/}&T0一段时间后再次进行相同的输出,以获得线程的另一个快照,查明哪一个线程已经显著增大。
D8O)Ud!n;o0确定要进一步检查的线程 ID (TID)。
;p+YO h1U!QZuy,r0再次运行 pslist: pslist -d 172051Testing软件测试网R}$hxF"`)O&\Kd
51Testing软件测试网R#Ib%OC3Lz

java 1720:51Testing软件测试网(q&D F.A{O F%j
Tid Pri Cswtch State User Time Kernel Time Elapsed Time
Eu2`1D V*d-Q01520 8 9705 Wait:UserReq 0:00:23.734 0:00:01.772 0:08:14.511
G#t;?.F(Fc#Q9T [01968 8 6527 Wait:UserReq 0:00:06.309 0:00:00.070 0:08:14.12051Testing软件测试网2D(O^&rn*F"V
1748 15 157 Wait:UserReq 0:00:00.010 0:00:00.010 0:08:14.11051Testing软件测试网OhXv,n9KSf'RJ
1744 10 68 Wait:UserReq 0:00:00.010 0:00:00.000 0:08:14.100
)_:A7rY-K k01420 15 3 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:13.81051Testing软件测试网5u)]E2?AQ
1856 15 18 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:13.81051Testing软件测试网 wV9|P"P3]`
1860 8 3169 Wait:UserReq 0:00:03.314 0:00:00.160 0:08:13.810
`u)p\Q,K]zs4A*x"M0412 15 9890 Wait:DelayExec 0:00:00.000 0:00:00.000 0:08:13.800
?/?,gSx01864 8 3 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:09.81451Testing软件测试网 K3z5L6NK
1660 15 188 Wait:UserReq 0:00:00.010 0:00:00.010 0:08:01.372
,X#Z U B+x"}/L02020 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:01.27251Testing软件测试网 ^kXQ:xA'^Pj
1532 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:01.26251Testing软件测试网 XW d~]F$`
1332 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:01.252
aJ+InJ01696 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:01.24151Testing软件测试网I u ^I;D8|
2060 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:01.24151Testing软件测试网9T4[MHc"pL2A
1552 9 40 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:01.231
\UI!mr5y,xh8R%H02072 8 13 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:01.231
l9P*]9jQ+Ym.F.T;\F02068 8 20 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:01.221
b$C P2[)DN02044 8 15 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:01.221
"K'f6ydC6M02000 8 657 Wait:UserReq 0:00:00.090 0:00:00.010 0:08:01.211
-vn"Q5z,YPy;U0588 10 59123 Wait:UserReq 0:00:48.830 0:00:02.633 0:08:01.211
O0^MG0J6}1Q?01784 8 150 Wait:UserReq 0:00:00.090 0:00:00.000 0:08:01.20151Testing软件测试网\5G$l w J#Q.IL
1756 8 251 Wait:UserReq 0:00:00.941 0:00:00.000 0:08:01.201
!Ic.Kx r01716 8 6 Wait:Queue 0:00:00.000 0:00:00.000 0:08:01.191
)j!i ^b0Q^(T[01800 8 1457 Wait:Queue 0:00:00.761 0:00:00.210 0:08:01.19151Testing软件测试网6R#g:Po9|:~-zYO
1996 8 47 Wait:UserReq 0:00:00.170 0:00:00.000 0:08:01.081
c`5si5K9^ C;@01992 10 29 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.68151Testing软件测试网1} B U E%D*O&Ei9_
1988 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.67151Testing软件测试网,|/P;TsC
1984 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.66151Testing软件测试网/Bpk$i-[@ Gs)qx#v
1976 9 400 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.52051Testing软件测试网6v(r3@]:L
1956 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.480
;v(G*qpU MK01740 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.470
q:vW a+Q]01944 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.460
Q^:`\1x+p(Bk01964 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.45051Testing软件测试网t Oo"bI*X B(n^
1972 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.45051Testing软件测试网/b3J4w\(z8`0IXYk
1280 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.44051Testing软件测试网 ]$e+|E*X,N[
1960 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.440
_#cL:^tP _I01872 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.430
R~zd"~2d8ER dJr01884 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.43051Testing软件测试网Q\:gY2b3k:?
1952 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.42051Testing软件测试网1eIbqhv#h
1940 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.420
ex c Ws;c+C01936 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:08:00.41051Testing软件测试网T;Kq&O\`&m)B8A
1932 6 4 Wait:UserReq 0:00:00.010 0:00:00.000 0:07:58.538
)ZSIk8K0IP].@-N01928 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:51.12751Testing软件测试网]f X*c If/A
1916 8 3 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:51.11751Testing软件测试网 q0N]B/?,[ Zv,? {(f}T
1912 8 5 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:51.107
8r`){0K'V.r01908 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:51.107
,|$xur!L)Y3Be01904 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:51.09751Testing软件测试网g4}EsR!g~ \F9t"oie
1900 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:51.087
QE&S%@o9o01896 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.13651Testing软件测试网pS5S@*z!S!{GT.Ib
2064 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.126
n"C&j ] Ri1c(u01828 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.115
kVy*S%U{;|/sz't-C01892 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.10551Testing软件测试网0C1d:LIHv0l:k
1888 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.105
by%c9vst&T01852 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.09551Testing软件测试网 ~@9EomIYL)g
1848 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.095
v"{J-o9K01844 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.085
(bJH gt(x7Z01412 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.085
%w DSL/QD1O0332 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.075
(Q}Yv h7{01840 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.075
] v,Iw6_p*G!Q01440 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.065
x"G#x @yD9n01796 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.065
j:b'kM EkU2a6r01240 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.055
7p1ZhQ0f4M/y0568 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:50.05551Testing软件测试网8rN8M7j)k7n` q!oa
1732 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:49.04451Testing软件测试网jK%rAL'zCN
2056 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:34.253
x#eVJ \a8v01688 8 4 Wait:UserReq 0:00:00.000 0:00:00.010 0:07:34.243
cJ qaRm2L01776 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:34.233
cR vA2G/O01648 8 2 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:34.22351Testing软件测试网0d-t[\)F~&w't,Q
1768 8 3 Wait:UserReq 0:00:00.000 0:00:00.000 0:07:34.22351Testing软件测试网K8nGZzy4ZEt
284 9 416 Ready 0:00:00.420 0:00:00.100 0:07:28.13451Testing软件测试网)N&F4h,EN,AyN
576 8 123 Wait:UserReq 0:00:00.070 0:00:00.020 0:07:26.762
VB U6}B.Zb051Testing软件测试网 B/e:aj-q5`5b{ }
注意,线程 ID 588 正在使用最多的用户/内核时间,因此占用最多的 CPU 资源。显然,该线程有问题。51Testing软件测试网4jFlmk/[!t#P
记录线程 ID 号 588,并将其转换为十六进制值 (0x24)。
1N$I)z aB0查看您在出现问题时所记下的 Thread Dump,并查找“nid=0x24”。
&H/_,M1s{0从以下输出中可以看出,它对应于 Thread Dump 中的 ExecuteThread 10:
cq-E5?'y#P'CO%m__0

c YU V(@(wPy0"ExecuteThread: '10' for queue: 'default'" daemon prio=5 tid=0x20d75808 nid=0x24c runnablehttp://219ff000..219ffd9051Testing软件测试网0o;]KP%q$UI
at java.net.SocketOutputStream.socketWrite0(Native Method)
D9`W%ud%gsfKD0at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)51Testing软件测试网`%b&JW&_
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)51Testing软件测试网ww H.@ d2M9hp
at weblogic.servlet.internal.ChunkUtils.writeChunkTransfer(ChunkUtils.java:222)51Testing软件测试网5B} {0g&^
at weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java:198)51Testing软件测试网{5t7rU\1Nv!y+x
at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:284)51Testing软件测试网2\*c:W6DHX#S {
at weblogic.servlet.internal.ChunkOutput.checkForFlush(ChunkOutput.java:344)51Testing软件测试网Z!w0s xN
at weblogic.servlet.internal.ChunkOutput.write(ChunkOutput.java:221)51Testing软件测试网,XP @K,Wo5Y?
at weblogic.servlet.internal.ChunkOutput.write(ChunkOutput.java:236)
1Q8SJ]Z0at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:95)
~j$`2C,m,DJy0at weblogic.servlet.internal.ChunkWriter.write(ChunkWriter.java:37)51Testing软件测试网0w"bu9hA
at java.io.Writer.write(Writer.java:150)51Testing软件测试网@xf `W:Eef@ oW
- locked <0x11d0d1c0> (a weblogic.servlet.internal.ChunkWriter)
&P^`4tv1Wf w6n0at java.io.PrintWriter.write(PrintWriter.java:230)51Testing软件测试网1c#u4Y G M O(rz
- locked <0x11d0d1c0> (a weblogic.servlet.internal.ChunkWriter)
u_(z9J-{,`0at java.io.PrintWriter.write(PrintWriter.java:247)
k$VL'P&` |?0at java.io.PrintWriter.print(PrintWriter.java:378)51Testing软件测试网gg;n5}8{(d:O;X5l
at java.io.PrintWriter.println(PrintWriter.java:515)51Testing软件测试网Ubm"zO5z
- locked <0x11d0d1c0> (a weblogic.servlet.internal.ChunkWriter)
kh_uqxh3t.z0at examples.servlets.HelloWorld2.service(HelloWorld2.java:94)51Testing软件测试网K9F2x? Q'[1Gq LQ
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)51Testing软件测试网L&o2wo1_ a7uM
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1058)
1AC.Z_]@A4H0at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:401)
/k*M1`Y,` L u0at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)51Testing软件测试网2j"[.U&G ` [/l
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5412)51Testing软件测试网*_j2RS5UEYl+k,M\+p
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:744)51Testing软件测试网-sp!}?&?[ ZbZX
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3086)51Testing软件测试网 zw#@/C-x
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2544)51Testing软件测试网X!^ Z#V} P y)i|*~&Z
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
\!O1MI7]P V0at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)51Testing软件测试网)cru v*`V
显然,问题出现在 socketWrite本地方法上,但表面看起来是 HelloWorld2.service()出错。
R.Jfe;Kw0
.D+@m)N%_?.n0检查行号(HelloWorld2.java的第 94 行)以确定发生的情况。
)`{;_xq&s6l[0从 service()方法的 HelloWorld2.java 代码片断:
L|8Yu&O ^VB&oy051Testing软件测试网z,iw(^#W,Y'_FM6J

89 out.println(ExampleUtils.returnHtmlHeader("Hello World 2"));51Testing软件测试网v!x7LK%d!jL8}
90 out.println("

");
8l-o8D"jn!R6w1M091 for (int i=0;i<100000000;i++) {51Testing软件测试网;s3c;F8}'N
92 int j = 0;51Testing软件测试网 [qc a!Ua)s(U }2J+n
93 j = j +i;
YOR5e'^Ig3[#v&S094 out.println(defaultGreeting + " " + defaultName + "!");51Testing软件测试网9VCitr
95 }
:f~2l'D a\!?09651Testing软件测试网EB Y5e^4E
97 out.println("

");
9n*m0e J!QQNL098 out.println(ExampleUtils.returnHtmlFooter());51Testing软件测试网;PC#y|R'X
可以看出,由于某种原因,输出流是用一个非常长的“for loop”语句编写的。这是错误所在,也是此示例中造成高 CPU 占用率的原因。51Testing软件测试网?G"jE{2U+bK

sK3f]Q(^1b:P0如果改正此代码,则 CPU 就不会被完全占用.

TAG: Weblogic

 

评分:0

我来说两句

Open Toolbar