[jboss-user] [Performance Tuning] - Large number of threads/connections marked "keep alive"

Ben Hsu do-not-reply at jboss.com
Mon Feb 14 18:31:30 EST 2011


Ben Hsu [http://community.jboss.org/people/benhsu_at_bluefly] created the discussion

"Large number of threads/connections marked "keep alive""

To view the discussion, visit: http://community.jboss.org/message/587341#587341

--------------------------------------------------------------
Hello

We're seeing an issue where the performance of our application would degrade over time, to the point where its unresponsive. Based on what I see, I think it might be related to how we're configuring keep-alive, and I'm wondering where I can find more information about configuring keep-alive in JBoss.

The symptoms:
 - The application's performance would degrade over the day 
- eventually we will get a message saying "all 200 threads are busy, please increase the maximum thread count"
 - at this point, doing a thread dump (using "kill -3") shows many threads in the following state:
<blockquote>
"TP-Processor200" daemon prio=1 tid=0x0000002b31e372c0 nid=0x651a runnable [0x000000005408e000..0x000000005408ec30]
          at java.net.SocketInputStream.socketRead0(Native Method)
          at java.net.SocketInputStream.read(SocketInputStream.java:129)
          at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
          at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
          at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
          - locked <0x0000002b082abec0> (a java.io.BufferedInputStream)
          at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:620)
          at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:558)
          at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:685)
          at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
          at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
          at java.lang.Thread.run(Thread.java:595)
</blockquote>
 - when I look at the "connection scoreboard" in the JBoss web console, I see 200 connections marked with a "K" for "keep alive", also these connections look like they've been around for a long time (around 7,000,000ms, which will be 2 hours), long after we've killed all the clientsd

Based on what I saw above and some googling, I'm thinking this might be related to how we're configuring keep alive. I haven't been able to go further than this, because I don't know much about JBoss configuration. Does anybody have any information about how keep alive is being configured in JBoss?

We are using JBoss version 4.0.5 GA

Thank you!
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/587341#587341]

Start a new discussion in Performance Tuning at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2078]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20110214/01873e9e/attachment.html 


More information about the jboss-user mailing list