-
1. Re: performance vs message size
ataylor Jun 2, 2010 6:04 AM (in response to pemex)firstly, did you run a large enough sample, sending a hundred messages will not really give you accurate figures you need to run thousands if not hundreds of thousands.
secondly there is a tuning section in the manual, have you read this.
Typically anything from paging/large message size, memory etc etc would have an effect as well as how many producers/consumers you have.
-
2. Re: performance vs message size
pemex Jun 2, 2010 6:28 AM (in response to ataylor)Settings are test perf defaults.
1/perf test is 100 000 messages.
The speed is pretty stable (when msg size > 16k), one run to another.
I don't stop the server, one test to another. So, it is really 'warm'.
2/I read tuning section (I'm newbie, by the way)
3/perf test is one producer to one consumer.
I should clone clients after solving this.
Can someone launch /examples/core/perf with various message size, and post results ?
thanks
-
3. Re: performance vs message size
timfox Jun 2, 2010 6:33 AM (in response to pemex)How are you measuring the figure in MB/s ?
Also, you didn't say what network you're using, whether it's isolated or not.
Whether you're using separate machines or not. There's really not enough info provided to make much comment.
-
4. Re: performance vs message size
timfox Jun 2, 2010 6:34 AM (in response to timfox)If you're doing this on a single server, I don't see how any results will be relevant to real world where you have a real network and different machines...
-
5. Re: performance vs message size
pemex Jun 2, 2010 6:47 AM (in response to timfox)MB/s = msgs/s * msg size
msgs/s are read after the perf test.
The business is looking for throughput.
I'm on a single server : Sender is local. Consumer is local. So, the network is virtually not limiting.
Server is one virtual machine, with 4 cores.
Next, I plan to set up more clients, on separated machines.
This is the first basic test, to see top speed of the messaging component alone.
This will help to choose a 1GB or 10GB network, or not.
-
6. Re: performance vs message size
timfox Jun 2, 2010 6:48 AM (in response to pemex)First thing:
1) That's not a correct calculation for msgs/sec
You have messages going to the server, then you have messages coming from the server, then you also have acks going from client to server. So MB/s is probably more like 2.1 * msgs/sec * msg size
2) Don't test on just one machine - it's kind of meaningless. Firstly you have three different processes (server, client1 and client2) all computing for CPU. Secondly you're not using a real network, and loopback will have completely different characteristics to a real network. It's a waste of time.
Test on the real hardware. Don't test on a desktop or laptop machine.
-
7. Re: performance vs message size
timfox Jun 2, 2010 6:49 AM (in response to pemex)pemex nospam wrote:
I'm on a single server : Sender is local. Consumer is local. So, the network is virtually not limiting.
That's not correct. The loopback interface can definitely be the limiting factor sometimes.
-
8. Re: performance vs message size
timfox Jun 2, 2010 6:54 AM (in response to timfox)1 of 1 people found this helpfulFor the record, on a dedicated 1 GiB ethernet with three physical machines:
1 server machine, 1 producer machine, 1 consumer machine
We can do around 1 million msgs/sec with 1 producer and 15 consumers (publish/subscribe). That's total messages to all subscribers. These are JMS messages, JMS message body is 12 bytes (total message size is around 60 bytes)
For larger messages on a 1 GiB ethernet you'll find that you quickly saturate the network before you're limited by CPU.
You'll saturate the network with around 100K msgs/sec on a 1 GiB ethernet. That's a network hardware limit. To go beyond that you'll need 10 GiB ethernet
(We'll be publishing these results pretty soon)
-
9. Re: performance vs message size
pemex Jun 2, 2010 6:59 AM (in response to timfox)Ok, I'm going to install 3 servers : sender, server, consumer. I'll post updates.
I note your remark that I should be limited by network before cpu.
Thanks for your experience.
Question though:
Could it be more interesting to use JBoss Cache ? (i.e: store msgs data in cache and send a message with cache ID)
Do you think this would worth a test ?
-
10. Re: performance vs message size
timfox Jun 2, 2010 7:05 AM (in response to pemex)pemex nospam wrote:
Question though:
Could it be more interesting to use JBoss Cache ? (i.e: store msgs data in cache and send a message with cache ID)
Do you think this would worth a test ?
Interesting in what sense?
This would be more complex to setup, and involve extra network round-trip to retrieve the message. ===> performace would plummet since you'd be limited by network latency, not bandwidth.
BTW, I assume you're using 2.1? If so, use the ThroughputConnectionFactory for best throughput (this is discussed in performance tuning chapter)
-
11. Re: performance vs message size
pemex Jun 4, 2010 9:21 AM (in response to timfox)You seems right : I just hit the network speed limit !