From: Steven S. <kun...@ya...> - 2004-11-19 22:51:35
|
I had received the following links in response to an earlier post where I inquired as the throughput capability of OpenJMS. http://openjms.sourceforge.net/perf/tcp2.html After examing these test results I inquired as to what the hardware configuration was at the time of testing. I was told that it was a Windows 2000 machine and both the OpenJMS server and client test code were run on the same machine. So, in trying to determine if OpenJMS will suit my needs, I ran a series of performance tests. After trying numerous combinations of operating systems with the client running both locally and remotely, I arrived at the following conclusion. In order to achieve the numbers, or anything close to the numbers, in the test results at the link above, the server and the client must both be run on the same machine under Windows 2000. In all other test configurations, the message send speed is still acceptable but the receipt speed is reduced to a crawl at about 10 to 20 messages per second. This is regardless of whether the client is local or across the wire. The operating systems used for testing included RedHat 7.3, Fedora 2, Solaris 8, and Windows 2000. The databases used for testing include Sybase and MySQL. Also, JDBM was tried. Various combinations of OSs and DBs were used. The JMS messaging settings were as follows. One Topic One Publisher One Non-Durable, Asynchronous Subscriber Non-Persistent BytesMessage Auto-Acknowledge Session TCP Connector I would send 1000 messages and see them *published* very quickly regardless of test configuration. However, the asynchronous subscriber would only receive the messages at about 10 to 20 per second *unless* the test was conucted under Windows 2000 with both the OpenJMS server and client local, in which case message receive speed was on par with the OpenJMS test results. I don't think that 10 to 20 messages per second total throughput is what should be expected, however. My belief is that Windows optimizes local socket connections, when the client and server are both local, which permits the throughput numbers to go way up. As soon as you move away from this configuration, even if using two Windows machines but this time across the wire, the receive time for messages decreases to about 10 to 20 messages per second. It's only under Windows with the server and client running on the same machine that higher performance is registered. Is there some sort of message throttling at work in the underlying implementation? If so, should this be configurable? I certainly not knocking the OpenJMS project, because it's a great! I'm just trying to find out what may be wrong and make the software better. I have fairly extensive Java development experience so I'm not just a "user" of OpenJMS. If you want to talk technical with me, go right ahead. If you want to bounce some possible causes of this problem off me, go right ahead. If anyone, especially the project administrators would like to contact me directly, please do so. Thanks. Steve __________________________________ Do you Yahoo!? Meet the all-new My Yahoo! - Try it today! http://my.yahoo.com |