4

I've been recently working on with the WSO2 Message Broker (Ver : 3.1.0 ) in order to publish and consume messages using JMeter as the jms client. So I've got my publisher Java program where I'm publishing the messages from and I'm trying to publish 4000 messages per second. I could provide the snippet if necessary.

I'm consuming those messages by running a JMeter command jmeter -n -t C:\Users\ctsadmin\Downloads\wso2MB\apache-jmeter-2.13\bin\GamesSubscriber.jmx -l C:\Users\ctsadmin\Downloads\wso2MB\apache-jmeter-2.13\bin\mytest_results.jtl in headless mode. I kept the VisualVmwindow opened as well to see the memory consumption for the test. For the first 15 minutes the publishing and consuming has been ok according to the image below, but there after, all of sudden the VisualVm shows a hype and runs out of memory. I'm attaching a screenshot of the VisualVM below.

Screenshot of the CPU usage

I've checked the heap dump of the WSO2 MB using JProfiler as well. Have attached a screenshot of it too. enter image description here

What could be the issue? And what changes should I make? Something like increasing the heap size? Any help would be aprreciated.

EDIT: I'm hereby attaching the log file and the heap dump.

Kulasangar
  • 9,046
  • 5
  • 51
  • 82
  • 1
    Could you please tell the backend store you configured ? Is it default H2 database or other RDBMS store ? For me it seems database couldn't handle the load and it was went offline according to the JProfiler heap dump analysis. In situation like this, MB will enable Global error based flow controlling and not accept traffic from the outside. But I need more details to identify exact root cause such as wso2carbon.log files and heap dump. – Indika Sampath May 08 '16 at 13:54
  • It's the default H2 database. I've attached the log file and the dump in the edited part of the question. – Kulasangar May 09 '16 at 05:50

1 Answers1

5

increasing the heap size

is the way to go. But you also have to check how to do a distribute test; because 12000 is a big test that can't be run only in one machine alone; it is not a good practice.

http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.pdf

victor sosa
  • 899
  • 13
  • 27