House of Fusion
Search over 2,500 ColdFusion resources here
  
Home of the ColdFusion Community

Search jrun-talk

February 09, 2010

<<   <   Today   >   >>
Su Mo Tu We Th Fr Sa
   1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28             

Home / Groups / JRun-Talk

many jrunx scheduler JSemaphore threads in wait state

Author:
John Zhao
06/16/2005 10:11 AM

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. 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                   kmscott@berbee.com Software Engineer               608 298-1223 Berbee 5520 Research Park Drive Madison, WI 53711


Mailing Lists