Havea you correlated those peaks with specific times in the activemq log?

Probably a long shot, but maybe its the garbage collector in the JVM?
If so, you can adjust the schedule for it.

On Mon, 27 Jun 2011 04:28:56 -0700 (PDT), apuschmann
<[email protected]> wrote:
> Hello,
> 
> I have done some performance testing between activme and rabbitmq. First
of
> all, I use ActiveMQ 5.4.0 on a Dual Core 1,8 and 2GB using kahadb, and a
> default configuration. I tested how fast activemq and rabbitmq can write
> and
> read messages from a persistence queue with a message size of ca. 1KB.
Both
> tests were under the same situation. On Activemq i found out that after
> every third meter record there is a high processing time, some times it
is
> very high. This behaviour occurs both sending and consuming. Without
this
> peaks activemq were much faster than rabbitmq in my case.
> Ok my testcase, i sended 3000 messages and measured the time for sending
> these 3000 messages. The messages were always the same.
> 
> Looking at this picture.
> http://img101.imageshack.us/img101/6826/sender.png
> 
> 
> 
> Can somebody can tell me why these peaks occurs or what i can do against
> it?
> Thanks.
> 
> Here my testing code:
> 
> 
>     public void run() throws JMSException
>     {
> 
>       String brokerURL = "tcp://localhost:61616?jms.useAsyncSend=true";
>       ConnectionFactory factory = new
ActiveMQConnectionFactory(brokerURL);
>       connection = factory.createConnection();
>       connection.start();
>       session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
>       Destination destination = session.createQueue(queueName);
>       producer = session.createProducer(destination);
> 
>       producer.setDeliveryMode(DeliveryMode.PERSISTENT);
> 
>       int i=0, j=0;
>       long start = System.currentTimeMillis();
>       while(true)
>       {
>                       Message message = 
> session.createTextMessage(Producer.message);
>                       producer.send(message);
>               i++;
>               j++;
>               if(i == 3000)
>               {
>                       System.out.println("The last 3000 Messages needed " +
> (System.currentTimeMillis() - start));
>                       start = System.currentTimeMillis();
>                       i=0;
>                       if(j==300000)
>                       {
>                               break;
>                       }
>               }
>       }
>     }
> 
> --
> View this message in context:
>
http://activemq.2283324.n4.nabble.com/Activemq-vs-Rabbitmq-performance-Peaks-tp3627493p3627493.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to