You have set 25 minHandlerThreads and 25 activeHandlerThreads. I don't
think this is a good idea. Reduce min to 1 and you may increase
activeHanlder to a higher number depending on the load requirement.
-----Original Message-----
From: Kari M. Scott [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 16, 2005 9:44 AM
To: JRun-Talk
Subject: RE: many jrunx.scheduler.JSemaphore threads in wait state
On Wed, 2005-06-15 at 22:14, John Zhao wrote:
> It has nothing to do with the scheduler service. You should post
> ProxyService config instead. What is the metrics format like?
Okidoki. Here's what we have for our proxy service config:
<service class="jrun.servlet.jrpp.JRunProxyService"
name="ProxyService">
<attribute name="activeHandlerThreads">25</attribute>
<attribute name="backlog">500</attribute>
<attribute name="deactivated">false</attribute>
<attribute name="interface">*</attribute>
<attribute name="maxHandlerThreads">1000</attribute>
<attribute name="minHandlerThreads">25</attribute>
<attribute name="port">9000</attribute>
<attribute name="threadWaitTimeout">300</attribute>
<attribute name="timeout">300</attribute>
<attribute name="mapCheck">0</attribute>
</service>
And, here's our metrics format:
<attribute name="metricsFormat">Thrds: L={jrpp.listenTh}
I={jrpp.idleTh} Q={jrpp.delayTh} R={jrpp.busyTh} TOT={jrpp.totalTh}; Rq:
Q={jrpp.delayRq} X={jrpp.droppedRq} S={jrpp.handledRq}; Shd:
L={scheduler.listenTh} Q={scheduler.delayTh} R={scheduler.busyTh}
X={scheduler.droppedRq} TOT={scheduler.totalTh};
(Free/Tot)={freeMemory}/{totalMemory}; Sess:
(InMem/Tot)={sessionsInMem}/{sessions}</attribute>
> Also you should reduce the minThreadHandle to 1 since it doesn't do
any good for you.
Will do.
-Kari
> Here's a snapshot of the metrics log during the last occurrence.
Notice the jump in idle threads from 32 to 140:
>
> 06/15 14:00:25 metrics Thrds: L=25 I=32 Q=0 R=3 TOT=60; Rq: Q=0 X=0
S=314; Shd: L=23 Q=0 R=1 X=0 TOT=24; (Free/Tot)=579626/1572672; Sess:
(InMem/Tot)=868/868
> 06/15 14:01:25 metrics Thrds: L=41 I=140 Q=0 R=0 TOT=181; Rq: Q=0 X=0
S=278; Shd: L=23 Q=0 R=1 X=0 TOT=24; (Free/Tot)=565261/1572672;
Sess:(InMem/Tot)=867/867
> I took a series of thread dumps during this occurrence and found that
the majority of these threads are these JSemaphore things in a wait
state:
>
> "jrpp-4220" prio=5 tid=0x009cd008 nid=0xabf5 in Object.wait()
> [7c67f000..7c67fc28]
> at java.lang.Object.wait(Native Method)
> - waiting on <0xa22547d0> (a jrunx.scheduler.JSemaphore)
> at jrunx.scheduler.JSemaphore.acquire(JSemaphore.java:74)
> - locked <0xa22547d0> (a jrunx.scheduler.JSemaphore)
>
> Does anyone know what would cause a backup of these threads?
--
--------------------------------------------------
Kari M. Scott [EMAIL PROTECTED]
Software Engineer 608 298-1223
Berbee
5520 Research Park Drive
Madison, WI 53711
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Find out how CFTicket can increase your company's customer support
efficiency by 100%
http://www.houseoffusion.com/banners/view.cfm?bannerid=49
Message: http://www.houseoffusion.com/lists.cfm/link=i:8:5700
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/8
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:8
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.8
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54