weblogic的活动进程居高不下,实际连接数根本没有那么多,不知怎么回事。求大神。
这是转储线程堆里边的信息,有大量类似信息。都是等待,而且都是active状态的。
===== FULL THREAD DUMP ===============
Tue Aug 12 10:54:48 2014
Oracle JRockit(R) R28.1.0-123-138454-1.6.0_20-20101014-1350-linux-x86_64
"Main Thread" id=1 idx=0x4 tid=12399 prio=5 alive, waiting, native_blocked
-- Waiting for notification on: weblogic/t3/srvr/T3Srvr@0xc70a6538[fat lock]
at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/ObjectZ(Native Method)
at java/lang/Object.wait(J)V(Native Method)
at java/lang/Object.wait(Object.java:485)
at weblogic/t3/srvr/T3Srvr.waitForDeath(T3Srvr.java:981)
^-- Lock released while waiting: weblogic/t3/srvr/T3Srvr@0xc70a6538[fat lock]
at weblogic/t3/srvr/T3Srvr.run(T3Srvr.java:490)
at weblogic/Server.main(Server.java:71)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
"(Signal Handler)" id=2 idx=0x8 tid=12400 prio=5 alive, native_blocked, daemon
"(OC Main Thread)" id=3 idx=0xc tid=12401 prio=5 alive, native_waiting, daemon
"(GC Worker Thread 1)" id=? idx=0x10 tid=12402 prio=5 alive, daemon
"(GC Worker Thread 2)" id=? idx=0x14 tid=12403 prio=5 alive, daemon
"(GC Worker Thread 3)" id=? idx=0x18 tid=12404 prio=5 alive, daemon
"(GC Worker Thread 4)" id=? idx=0x1c tid=12405 prio=5 alive, daemon
"(Code Generation Thread 1)" id=4 idx=0x20 tid=12406 prio=5 alive, native_waiting, daemon
"(Code Optimization Thread 1)" id=5 idx=0x24 tid=12407 prio=5 alive, native_waiting, daemon
"(VM Periodic Task)" id=6 idx=0x28 tid=12408 prio=10 alive, native_blocked, daemon
"Finalizer" id=7 idx=0x2c tid=12409 prio=8 alive, native_waiting, daemon
at jrockit/memory/Finalizer.waitForFinalizees(J[Ljava/lang/ObjectI(Native Method)
at jrockit/memory/Finalizer.access$700(Finalizer.java:12)
at jrockit/memory/Finalizer$4.run(Finalizer.java:189)
at java/lang/Thread.run(Thread.java:619)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
"Reference Handler" id=8 idx=0x30 tid=12410 prio=10 alive, native_waiting, daemon
at java/lang/ref/Reference.waitForActivatedQueue(J)Ljava/lang/ref/Reference;(Native Method)
at java/lang/ref/Reference.access$100(Reference.java:11)
at java/lang/ref/Reference$ReferenceHandler.run(Reference.java:82)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
"(Sensor Event Thread)" id=9 idx=0x34 tid=12411 prio=5 alive, native_blocked, daemon
"VM JFR Buffer Thread" id=10 idx=0x38 tid=12412 prio=5 alive, in native, daemon
"Timer-0" id=13 idx=0x3c tid=12415 prio=5 alive, waiting, native_blocked, daemon
-- Waiting for notification on: java/util/TaskQueue@0xc504e198[fat lock]
at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/ObjectZ(Native Method)
at java/lang/Object.wait(J)V(Native Method)
at java/lang/Object.wait(Object.java:485)
at java/util/TimerThread.mainLoop(Timer.java:483)
^-- Lock released while waiting: java/util/TaskQueue@0xc504e198[fat lock]
at java/util/TimerThread.run(Timer.java:462)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
"Timer-1" id=14 idx=0x40 tid=12416 prio=5 alive, waiting, native_blocked, daemon
-- Waiting for notification on: java/util/TaskQueue@0xc504e548[fat lock]
at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/ObjectZ(Native Method)
at java/lang/Object.wait(J)V(Native Method)
at java/util/TimerThread.mainLoop(Timer.java:509)
^-- Lock released while waiting: java/util/TaskQueue@0xc504e548[fat lock]
at java/util/TimerThread.run(Timer.java:462)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
"[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" id=15 idx=0x44 tid=12417 prio=5 alive, waiting, native_blocked, daemon
-- Waiting for notification on: weblogic/work/ExecuteThread@0xc6e748b0[fat lock]
at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/ObjectZ(Native Method)
at java/lang/Object.wait(J)V(Native Method)
at java/lang/Object.wait(Object.java:485)
at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:162)
^-- Lock released while waiting: weblogic/work/ExecuteThread@0xc6e748b0[fat lock]
at weblogic/work/ExecuteThread.run(ExecuteThread.java:183)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
"[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" id=16 idx=0x48 tid=12418 prio=5 alive, waiting, native_blocked, daemon
-- Waiting for notification on: weblogic/work/ExecuteThread@0xc6d42d00[fat lock]
at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/ObjectZ(Native Method)
at java/lang/Object.wait(J)V(Native Method)
at java/lang/Object.wait(Object.java:485)
at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:162)
^-- Lock released while waiting: weblogic/work/ExecuteThread@0xc6d42d00[fat lock]
at weblogic/work/ExecuteThread.run(ExecuteThread.java:183)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
"[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" id=17 idx=0x4c tid=12419 prio=5 alive, waiting, native_blocked, daemon
-- Waiting for notification on: weblogic/work/ExecuteThread@0xc6e1c620[fat lock]
at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/ObjectZ(Native Method)
at java/lang/Object.wait(J)V(Native Method)
at java/lang/Object.wait(Object.java:485)
at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:162)
^-- Lock released while waiting: weblogic/work/ExecuteThread@0xc6e1c620[fat lock]
at weblogic/work/ExecuteThread.run(ExecuteThread.java:183)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
"[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" id=18 idx=0x50 tid=12420 prio=5 alive, waiting, native_blocked, daemon
-- Waiting for notification on: weblogic/work/ExecuteThread@0xc6e1bf20[fat lock]
at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/ObjectZ(Native Method)
at java/lang/Object.wait(J)V(Native Method)
at java/lang/Object.wait(Object.java:485)
at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:162)
^-- Lock released while waiting: weblogic/work/ExecuteThread@0xc6e1bf20[fat lock]
at weblogic/work/ExecuteThread.run(ExecuteThread.java:183)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
………………………………此处省略N个类似信息
Blocked lock chains
===================
Chain 2:
"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" id=2024 idx=0x1f9c tid=14424 waiting for java/lang/String@0xc6cfacc0 held by:
"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" id=2023 idx=0x1f98 tid=14423 in chain 1
Chain 3:
"ExecuteThread: '3' for queue: 'weblogic.socket.Muxer'" id=2025 idx=0x1fa0 tid=14425 waiting for java/lang/String@0xc6cfacc0 held by:
"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" id=2023 idx=0x1f98 tid=14423 in chain 1
Open lock chains
================
Chain 1:
"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" id=2022 idx=0x1f94 tid=14422 waiting for java/lang/String@0xc6cfacc0 held by:
"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" id=2023 idx=0x1f98 tid=14423 (active)
===== END OF THREAD DUMP ===============
注:同样的java程序布置在另一套系统linux+oracle+weblogic上没出现这问题,但是这个布置在虚拟机云平台上,不知是否有影响。
你好,我目前也遇到了这个问题,不知道你当时是如何解决的?可否指点一下,也是生产环境,比较重要而且解决时间不多,求解,谢谢!
我也是这个问题,求解啊
根据分析你所提供的快照,原因是weblogic线程池设置的线程数据太少造成,线程不够用,可以适当调整线程池的线程数目