3
votes

My workplace is connected via cable internet with limited up/downstream, so for load-testing a web application I am using a distributed approach:

  • An instance of jmeter-server (v2.4) is running on a remote linux box which has proper internet connectivity.
  • The controlling jmeter GUI (also 2.4) is running on my desktop.
  • The two are connected via a VPN.
  • The SUT is a web-application hosted in another datacenter.

This works fine - I am able to start the remote thread execution from the jmeter GUI and receive live results in the Summary Report.

The weird part is that my ability to put real load on the SUT is limited by my local internet connection (inbound, downstream). Tracing the link between the local jmeter GUI and the remote jmeter-server, I can see that all HTTP-traffic from SUT towards jmeter-server is sent to the local jmeter GUI. So if the jmeter-server is retrieving a 1MB file from the SUT, it's then sending it to my local jmeter GUI (over my slow internet link).

Is that how it should be? I was expecting that only the key measurements would be transported (success, latency, etc).

[PS: I know I can scp my testplan across to the remote box and run it in a headless jmeter. But then I don't see live results...]

3
Did you find a workable solution?BlackGaff
Check the various "modes" for the sample sender here jmeter.apache.org/usermanual/remote-test.html#sendermodeKCD

3 Answers

4
votes

This is probably because you are having a "View Tree Results" in your jmeter script. This tells the server to send all responses back to the master so you can view them. That will quickly fill your bandwith and is memory intensive. Try to disable all listeners in your script and only have the "View Aggregate results" one in there.

With high load, you're not interested in individual results. There is also no need to open up your firewall in your datacenter if you use ssl tunneling. I've documented that in a blogpost because I couldn't find a simple step-by-step online, you might want to check that out too at http://rolfje.com/2012/02/16/distributed-jmeter-through-vpn-and-ssl/

0
votes

I would recommend you to write your results to a file. Before doing so, you can optionally perform a select / deselect of result save configuration by clicking on configure button and/or by checking write success/error to log. By unselecting result sampler data, save response messages etc you can reduce the amount of data being sent to your console.

0
votes

I THINK the way you have it set up, both the Local instance of Jmeter and the remote are running the script at the same time, hence traffic is being directed to your local box.

What I've found to be more effective is to remote INTO the machine running JMeter. Everything is then local to the proper machine, and I don't have to worry about bottle necks.

I would recommend having a simple data writer element that saves to a file on the REMOTE linux box.

In the GUI, you could still have just the aggregate report to keep an eye on what's happening.

Hope this helps. If not, I would recommend posting to the JMeter user group:

http://jmeter.512774.n5.nabble.com/