You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by zephyr451 <mg...@unica.com> on 2006/12/05 18:08:07 UTC

Synchronous Messaging Performance Question


I am having a problem with synchronous messaging performance.   I created a
test case similar to the RequesterTool.java and ConsumerTool.java wherein I
create a request and then block waiting for a response. The response is
being waited for using receive() rather than an onMessage() handler; in case
that matters.  The producer and consumer are running on two separate
machines connected via a single switch.


When I configure the above scenario using a single producer (in it's own
thread) and a single consumer.  I measure about 9.9 request/responses per
second.  This occurs with virtually no load on either CPU.  Also I ran a
thread monitoring tool and, if it means anything, I noticed on the producer
that most of the time was spent blocked on
edu.emory.mathcs.backport.java.util.concurrent.SynchronousQueue$Node

When I configure my test case to use two producers each running in it's own
thread, with a single consumer. I measure ~490 request/responses per second
with about 70% CPU load on each machine.

The message broker is running in a separate JVM on the producer machine.   I
did try setting the URL option wireFormat.tcpNoDelayEnabled to true, but
that made no difference in the behavior.

Configuration Notes:

   Producer Machine:  Single CPU WIndows 2003 Server, 2.0gb RAM,   Java
1.5.0_09-b03

   Consumer Machine:  Linux Red Hat 4 Enterprise,  1.0gb RAM Java
1.5.0_09-b03

Any suggestions folks have would be greatly appreciated.  I made an effort
to track down all the synchronous tuning information folks have posted, but
I could have missed something.

Regards,

Michael

-- 
View this message in context: http://www.nabble.com/Synchronous-Messaging-Performance-Question-tf2762926.html#a7703463
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Synchronous Messaging Performance Question

Posted by zephyr451 <mg...@unica.com>.
Yes, they are created once, at startup.  I should note that new 1000byte text
message is created for each request.  I've set the JMS correlation ID and
Reply To properties so the consumer knows where to reply.  


James.Strachan wrote:
> 
> Are you creating the producer and consumer up front and reusing the
> same ones for all requets & responses in your test?
> 
> On 12/5/06, zephyr451 <mg...@unica.com> wrote:
>>
>>
>> I am having a problem with synchronous messaging performance.   I created
>> a
>> test case similar to the RequesterTool.java and ConsumerTool.java wherein
>> I
>> create a request and then block waiting for a response. The response is
>> being waited for using receive() rather than an onMessage() handler; in
>> case
>> that matters.  The producer and consumer are running on two separate
>> machines connected via a single switch.
>>
>>
>> When I configure the above scenario using a single producer (in it's own
>> thread) and a single consumer.  I measure about 9.9 request/responses per
>> second.  This occurs with virtually no load on either CPU.  Also I ran a
>> thread monitoring tool and, if it means anything, I noticed on the
>> producer
>> that most of the time was spent blocked on
>> edu.emory.mathcs.backport.java.util.concurrent.SynchronousQueue$Node
>>
>> When I configure my test case to use two producers each running in it's
>> own
>> thread, with a single consumer. I measure ~490 request/responses per
>> second
>> with about 70% CPU load on each machine.
>>
>> The message broker is running in a separate JVM on the producer machine.  
>> I
>> did try setting the URL option wireFormat.tcpNoDelayEnabled to true, but
>> that made no difference in the behavior.
>>
>> Configuration Notes:
>>
>>    Producer Machine:  Single CPU WIndows 2003 Server, 2.0gb RAM,   Java
>> 1.5.0_09-b03
>>
>>    Consumer Machine:  Linux Red Hat 4 Enterprise,  1.0gb RAM Java
>> 1.5.0_09-b03
>>
>> Any suggestions folks have would be greatly appreciated.  I made an
>> effort
>> to track down all the synchronous tuning information folks have posted,
>> but
>> I could have missed something.
>>
>> Regards,
>>
>> Michael
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Synchronous-Messaging-Performance-Question-tf2762926.html#a7703463
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> 
> James
> -------
> http://radio.weblogs.com/0112098/
> 
> 

-- 
View this message in context: http://www.nabble.com/Synchronous-Messaging-Performance-Question-tf2762926.html#a7703757
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Synchronous Messaging Performance Question

Posted by James Strachan <ja...@gmail.com>.
Are you creating the producer and consumer up front and reusing the
same ones for all requets & responses in your test?

On 12/5/06, zephyr451 <mg...@unica.com> wrote:
>
>
> I am having a problem with synchronous messaging performance.   I created a
> test case similar to the RequesterTool.java and ConsumerTool.java wherein I
> create a request and then block waiting for a response. The response is
> being waited for using receive() rather than an onMessage() handler; in case
> that matters.  The producer and consumer are running on two separate
> machines connected via a single switch.
>
>
> When I configure the above scenario using a single producer (in it's own
> thread) and a single consumer.  I measure about 9.9 request/responses per
> second.  This occurs with virtually no load on either CPU.  Also I ran a
> thread monitoring tool and, if it means anything, I noticed on the producer
> that most of the time was spent blocked on
> edu.emory.mathcs.backport.java.util.concurrent.SynchronousQueue$Node
>
> When I configure my test case to use two producers each running in it's own
> thread, with a single consumer. I measure ~490 request/responses per second
> with about 70% CPU load on each machine.
>
> The message broker is running in a separate JVM on the producer machine.   I
> did try setting the URL option wireFormat.tcpNoDelayEnabled to true, but
> that made no difference in the behavior.
>
> Configuration Notes:
>
>    Producer Machine:  Single CPU WIndows 2003 Server, 2.0gb RAM,   Java
> 1.5.0_09-b03
>
>    Consumer Machine:  Linux Red Hat 4 Enterprise,  1.0gb RAM Java
> 1.5.0_09-b03
>
> Any suggestions folks have would be greatly appreciated.  I made an effort
> to track down all the synchronous tuning information folks have posted, but
> I could have missed something.
>
> Regards,
>
> Michael
>
> --
> View this message in context: http://www.nabble.com/Synchronous-Messaging-Performance-Question-tf2762926.html#a7703463
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>


-- 

James
-------
http://radio.weblogs.com/0112098/