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