[jboss-user] [Messaging, JMS & JBossMQ] - excess UIL2 threads

oglueck do-not-reply at jboss.com
Thu Jun 14 06:49:34 EDT 2007


Hi,

We noticed that the UIL2 architecture (SocketManager) uses many threads:
- 2 (read/write) per connection on the server side
- 2 (read/write) per connection on the client side

So if you have like 20 (EJB3) MDBs with a pool size of each 10 each, then UIL2 will create 20 * 10 * 4 = 400 threads that do mostly sleep and perform only ping/pong every minute or so.

Threads cost memory and constitute a scheduling problem. The current design limits the amount of MDBs in one JVM (or in extreme cases on one machine) unnecessarily.

Have the JBoss team ever thought about reducing this massive waste of resources? Maybe with NIO selectors und NIO buffers Threads could be shared among connections. Likewise the MQ destinations could provide selectors instead of blocking calls to pop a message from the stack. I think it makes sense to have one thread per MDB on each client and server side, handling all of the connections. It should be possible to do this without giving up the non-blocking behaviour.

Ortwin



View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4054291#4054291

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4054291



More information about the jboss-user mailing list