activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <dar...@ontrenet.com>
Subject Re: Activemq vs. Rabbitmq, performance Peaks
Date Mon, 27 Jun 2011 15:18:16 GMT

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
<arno.puschmann@acodeas.de> 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.

Mime
View raw message