You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by j0llyr0g3r <ti...@wincor-nixdorf.com> on 2007/08/07 15:49:20 UTC

Performance compared to official performance statement

Hi folks,

i am a little bit surprised about the performance of my broker-network.

The AMQ-Website says:

When running the server on one box and a single producer and consumer thread
in separate VMs on the other box, using a single topic we got around
21-22,000 messages/second using 1-2K messages.

I have almost exactly the same setup:

- one single broker on one machine
- consumer and producer on another

I don't use anything time-consuming, meaning message delivery is set to be:

- non-persistent
- no transactions
- 1k-messages max
- asynchrous
- no failover
- stomp as protocol

Even so my sample-network only achieves a message throughput of approx. 1000
messages per second.

What could be the reason for this?

Here is my broker-config.xml:

<beans>

  <!-- Allows us to use system properties as variables in this configuration
file -->
  <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>

  <broker brokerName="singleBroker" useJmx="true"
xmlns="http://activemq.org/config/1.0">

    <!-- Use the following to configure how ActiveMQ is exposed in JMX -->
    <managementContext>
       <managementContext connectorPort="4444"
jmxDomainName="org.apache.activemq"/>
    </managementContext>


    <!-- In ActiveMQ 4, you can setup destination policies -->
    <destinationPolicy>
      <policyMap><policyEntries>

          <policyEntry topic="ice">
            <dispatchPolicy>
              <strictOrderDispatchPolicy />
            </dispatchPolicy>
            <subscriptionRecoveryPolicy>
              <lastImageSubscriptionRecoveryPolicy />
            </subscriptionRecoveryPolicy>
          </policyEntry>

      </policyEntries></policyMap>
    </destinationPolicy>

    <transportConnectors>
       <transportConnector  name="openwire" uri="tcp://localhost:61616"
discoveryUri="multicast://default"/>
       <transportConnector  name="stomp" uri="stomp://localhost:61613"
discoveryUri="multicast://default" />
    </transportConnectors>

  </broker>


</beans>

My producer and consumer are based on the activemq-cpp example.

tcp://172.18.117.126:61613?wireFormat=stomp&transport.useAsyncSend=true

would be an example URI.

Any ideas?

-- 
View this message in context: http://www.nabble.com/Performance-compared-to-official-performance-statement-tf4230263s2354.html#a12034753
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Performance compared to official performance statement

Posted by Timothy Bish <ti...@sensis.com>.
One question would be what version of ActiveMQ-CPP are you using?  The
newest release has several performance tweaks added that should help.
Depending on the version you may also be seeing the naggle algorith
causing some delay, the newest version sets TCP_NODELAY on by default. 

The other thing to note is that the performance numbers on the website
are speaking of Java clients only not the C++ client, and they are using
the openwire protocol not stomp, so there are several factors int there
that are going to affect your performance.  

Regards
Tim

On Tue, 2007-08-07 at 06:49 -0700, j0llyr0g3r wrote:
> Hi folks,
> 
> i am a little bit surprised about the performance of my broker-network.
> 
> The AMQ-Website says:
> 
> When running the server on one box and a single producer and consumer thread
> in separate VMs on the other box, using a single topic we got around
> 21-22,000 messages/second using 1-2K messages.
> 
> I have almost exactly the same setup:
> 
> - one single broker on one machine
> - consumer and producer on another
> 
> I don't use anything time-consuming, meaning message delivery is set to be:
> 
> - non-persistent
> - no transactions
> - 1k-messages max
> - asynchrous
> - no failover
> - stomp as protocol
> 
> Even so my sample-network only achieves a message throughput of approx. 1000
> messages per second.
> 
> What could be the reason for this?
> 
> Here is my broker-config.xml:
> 
> <beans>
> 
>   <!-- Allows us to use system properties as variables in this configuration
> file -->
>   <bean
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
> 
>   <broker brokerName="singleBroker" useJmx="true"
> xmlns="http://activemq.org/config/1.0">
> 
>     <!-- Use the following to configure how ActiveMQ is exposed in JMX -->
>     <managementContext>
>        <managementContext connectorPort="4444"
> jmxDomainName="org.apache.activemq"/>
>     </managementContext>
> 
> 
>     <!-- In ActiveMQ 4, you can setup destination policies -->
>     <destinationPolicy>
>       <policyMap><policyEntries>
> 
>           <policyEntry topic="ice">
>             <dispatchPolicy>
>               <strictOrderDispatchPolicy />
>             </dispatchPolicy>
>             <subscriptionRecoveryPolicy>
>               <lastImageSubscriptionRecoveryPolicy />
>             </subscriptionRecoveryPolicy>
>           </policyEntry>
> 
>       </policyEntries></policyMap>
>     </destinationPolicy>
> 
>     <transportConnectors>
>        <transportConnector  name="openwire" uri="tcp://localhost:61616"
> discoveryUri="multicast://default"/>
>        <transportConnector  name="stomp" uri="stomp://localhost:61613"
> discoveryUri="multicast://default" />
>     </transportConnectors>
> 
>   </broker>
> 
> 
> </beans>


> 
> My producer and consumer are based on the activemq-cpp example.
> 
> tcp://172.18.117.126:61613?wireFormat=stomp&transport.useAsyncSend=true
> 
> would be an example URI.
> 
> Any ideas?
> 

Re: Performance compared to official performance statement

Posted by James Strachan <ja...@gmail.com>.
On 8/7/07, j0llyr0g3r <ti...@wincor-nixdorf.com> wrote:
>
> Hi folks,
>
> i am a little bit surprised about the performance of my broker-network.
>
> The AMQ-Website says:
>
> When running the server on one box and a single producer and consumer thread
> in separate VMs on the other box, using a single topic we got around
> 21-22,000 messages/second using 1-2K messages.

FWIW those figures were on a dual opteron using the Java client using
openwire. YMMV
http://activemq.apache.org/how-fast-is-activemq.html

-- 
James
-------
http://macstrac.blogspot.com/