Re: My performance problems with 0.7.6.1

Steve Condas <scondas-/[email protected]> Tue, 12 Dec 2006 21:23:58 -0800 (PST)
Newsgroups gmane.comp.java.openjms.user
Message-ID <[email protected]>
I have been analyzing network stack traces using the TCP/IP connector and
I believe the problem may be related to a one byte (of data) message
that gets sent server->subscriber and then later
subscriber->server for each JMS message sent.  After these messages
are sent there is a .04 second pause waiting for a TCP ACK from the
other side.  I believe these ACKs are delayed due to Nagle's algorithm in the RedHat TCP/IP stack,
which is waiting for user data to combine with the ACK to minimize the
number of packets sent.  This data never comes, so the TCP/IP stack
sends the ACK after a .04 second timeout.  



Windows is smart enough to realize that on connections to/from the same
machine you don't need to implement Nagel's algorithm, thus the
performance on Windows is good.  According to "Microsoft Windows 2000 TCP/IP Implementation Details", "The Nagle algorithm is not applied to loopback TCP connections for
performance reasons."  Question for Tim Anderson, do you develop on Windows by any chance?



Does anyone know why these one byte messages (always 0x00) are being
sent?  If they are required, then perhaps the sockets can be opened
with Socket.setTcpNoDelay() to remove the delay when using OpenJMS. 
Given that there are two of these pauses for every message, it is not
possible to get more than 1 message / .08 sec  = 12.5 messages/second. 



Regards,

Steve Condas

----- Original Message ----
From: Steve Condas <scondas-/[email protected]>
To: [email protected]
Sent: Tuesday, December 12, 2006 11:00:13 PM
Subject: My performance problems with 0.7.6.1

I have OpenJMS 0.7.6.1 running on a RedHat system, and the best consuming rates I can get are on the order of 10 messages/sec.   This is with non persistent messages, auto_ack, no durable subscribers, and the publisher and subscriber on the same computer.   It does not matter if I use TCP or RMI, I still get the same rates (publishing flies, it just the receiving that's a problem).  My CPU utilization is < 5%.  While looking through the archives, I have seen other users with the same question but without any suggested resolution.  Is there anyone using Linux that is getting higher performance than I am?  If so, would you be willing to share your system configuration and Publisher/Subscriber code?

Thanks,
Steve Condas

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

_______________________________________________
openjms-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openjms-user