I noticed a similar trend of spikes in latency when I was testing AMQ 5.3.0/5.3.2, and I could link them to log entries for opening new kahadb journal files. In our case it was tied to synchronous disk IO performance, but it was still faster than what we needed, so we didn't worry about tuning kahadb or our disk.
-----Original Message----- From: [email protected] [mailto:[email protected]] Sent: Monday, June 27, 2011 11:18 AM To: [email protected] Subject: Re: Activemq vs. Rabbitmq, performance Peaks 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. ----------------------------------------- ***Note:The information contained in this message may be privileged and confidential and protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the Sender immediately by replying to the message and deleting it from your computer. Thank you. Premier Inc.
