0
votes

I have to perform load testing on a load balanced (clustered) system composed of three servers.

Is it a good practice to test via JMeter each server ? Or maybe it would be better testing the whole cluster calling the load balancer dedicated endpoint ?

Thanks !

3

3 Answers

1
votes

Testing the whole system is always better. I mean you can find out problem with the load balancing management. It's always better to be in the same condition as the production environment. After your assessment of the first test. You can regulate and find out that maybe one server is slowing down the chain with another test.

0
votes

The answer is both (and you should find more cases.), You need to test your system on load as much as close to real environment to know its capabillities.

But also ,for example, when upgrading a version, sometimes only a few or even one server remain online and you need to know what load it can sustain .

0
votes

Well behaved load test needs to mimic real life application usage as close as possible therefore if the load balancer acts as a single entry point to the system - JMeter needs to hit this endpoint only so the whole system will be like a "black box".

With regards to distributed systems testing best practices you can also consider the following couple of areas:

  1. Load balancers may route requests depending on the origin so it might be a good idea to implement IP Spoofing so each JMeter virtual user could have its own source IP address.
  2. Load Balancer endpoint host(s) may have multiple IP addresses so consider DNS Cache Manager to your Test Plan so each JMeter virtual user could resolve endpoint address on its own as due to caching of DNS calls on OS or JVM level your test can hit one node only while others will be idle.