-
1. Re: What is the expected performance of the STOMP protocol?
timfox Sep 13, 2010 6:09 AM (in response to mrbeagle)You'd need to provide some kind of test program and your server config. Otherwise this question is really too general to answer.
-
2. Re: What is the expected performance of the STOMP protocol?
mrbeagle Sep 13, 2010 12:32 PM (in response to timfox)I'm using the barebones default server config for hornet, the only thing I changed is adding a new queue to the jms queues xml file and in the configuration file I changed all references to localhost to my actual server host along with adding the acceptor above. Everything else is default hornet 2.1.2 out of the box.
The python test code is here:
I was using the stompy library client.
Let me know if theres anything else. I'm looking for a general, "no it shouldn't be that slow our benchmarks showed good performance" or "yes it's know stomp is 10 fold slower than direct JMS connections"
thanks
-
3. Re: What is the expected performance of the STOMP protocol?
mrbeagle Sep 14, 2010 7:59 PM (in response to mrbeagle)anything else you'd need to know, Tim?
-
4. Re: What is the expected performance of the STOMP protocol?
timfox Sep 15, 2010 3:19 AM (in response to mrbeagle)Jeff is best to comment since he wrote the STOMP implementation.
IIRC STOMP is not well optimised compared to core protocol.
However you could try different clients to see if the problem is with the client or server, also compare it to a test program that uses the core protocol and see if there is much difference.
When you say "187 seconds to insert 50000 items" I assume you are sending persistent messages and you have the server setup to sync on each message received, and disc write cache is disabled on your disk? (See user manual)
50000/187 = 267 syncs per second.
That's actually a very good sync rate. Not many disks can go faster than that. Looks like you've hit your hardware limit. This would be the same whether it's HornetQ, Orackle, MySQL or any other application using your disk.
Not sure what you were expecting really...
BTW this has been discussed on several other threads before.
-
5. Re: What is the expected performance of the STOMP protocol?
timfox Sep 15, 2010 3:20 AM (in response to timfox)To summarise, your performance looks exactly what I would expect. Probably nothing to do with STOMP.
-
6. Re: What is the expected performance of the STOMP protocol?
mrbeagle Sep 29, 2010 1:09 PM (in response to timfox)I created a jira issue https://jira.jboss.org/browse/HORNETQ-536
with my configurations and a test client case. If there is anymore info I can provide let me know
thanks
-
7. Re: What is the expected performance of the STOMP protocol?
clebert.suconic Sep 29, 2010 1:20 PM (in response to mrbeagle)You probably didn't understand what Tim meant.
You sure have sync on for your disk. That means that any persistent message will have to be sync on the disk perform sent.
If you want to validate the performance of the protocol itself, you should use non-persistent messages.
-
8. Re: What is the expected performance of the STOMP protocol?
mrbeagle Sep 29, 2010 1:59 PM (in response to clebert.suconic)I believe I understand, but my issue is why when sending non-persistent messages am I seeing the same performance?
if you see the attachments I'm setting durable false on the queue and I'm setting the stomp messages to be non-persistent.
-
9. Re: What is the expected performance of the STOMP protocol?
mrbeagle Sep 29, 2010 3:26 PM (in response to mrbeagle)profiling shows that it's spending the majority of CPU time on
StompFrameDecoder.decode()
and not I/O
-
10. Re: What is the expected performance of the STOMP protocol?
timfox Sep 30, 2010 5:11 AM (in response to mrbeagle)Like I said on the JIRA, remove the line of code from the JMS test program. Do not change anything else, and report back with your results.
-
11. Re: What is the expected performance of the STOMP protocol?
timfox Sep 30, 2010 5:12 AM (in response to timfox)And please don't cross post between the JIRA and the forum thread.
Either discuss on the JIRA or the thread, not both.
-
12. Re: What is the expected performance of the STOMP protocol?
jmesnil Sep 30, 2010 5:36 AM (in response to mrbeagle)Jimmy Beagle wrote:
profiling shows that it's spending the majority of CPU time on
StompFrameDecoder.decode()
Stomp frames being text-based are significantely slower to decode that HornetQ binary messages.
We have not optimized Stomp decoding yet and it is likely there are low-hanging performance fruits that could improve the performance.
I'd be interested to get your profiling data to see where we could improve the decoding.
-
13. Re: What is the expected performance of the STOMP protocol?
mrbeagle Sep 30, 2010 10:58 AM (in response to timfox)I will try that today and report back, however could you please answer why when I set durable to false and send non-persistent msgs that disk sync comes into play?
I'm asking a basic question... how can I improve inserts per second for a particular queue using stomp?
Based on my jira configurations I posted, do I have the config files set up correctly? Even if JMS proves to be the same speed with blockondurable set to false I still have the underlying question of how to get better insert performance with stomp. 260 MSGS per second cannot be the top end for writing to memory.
thanks
-
14. Re: What is the expected performance of the STOMP protocol?
timfox Sep 30, 2010 11:07 AM (in response to mrbeagle)Let's take this one step at a time.