Using Multiple Client IP Addresses per Load-Releasing System

Optionally, you may want an Exec Agent to use multiple client IP addresses during the load test to simulate users from different network locations. If a load balancer is placed in front of a web server cluster or web server farm, the load balancer will often route all HTTP/S requests of one client IP address to only one member of the web server cluster. This is because web applications use session cookies, whose context information is only stored in a particular cluster member's transient memory. The server-side SSL cache is usually handled by the cluster members and not by the load balancer. This load balancer functionality is called “IP stickiness,” representing the recording of client IP addresses inside the load balancer algorithms. This term has nothing to do with the sticky bit of Unix file systems.

If you encounter this situation, the load will appear on only one web server and will not be distributed across all webserver cluster members. The solution to this load balancer behavior is to have the Exec Agent use multiple client IP addresses during the load test; therefore, each concurrent "user" will have its own IP address – or, if more concurrent users are running than available local IP addresses, the local IP addresses will be averaged across the concurrent users.

Warning: please contact your network administrator to get additional (free) IP addresses. An incorrect configuration of additional IP addresses without consulting the network administrator may impact several other computers of the same LAN, such that these other computers could lose their network connection due to IP address conflicts.

Configuring Multiple IP Addresses at the Operating System Level

  1. The first step to enable multiple IP addresses for an Exec Agent is to reconfigure the underlying Windows or Unix operating system, such that multiple local IP addresses are available. This can be done by assigning additional IP addresses to the same physical network interface.

Step 1: Windows

Step 1: Unix-like Systems

You can configure multiple virtual IP addresses for the same network interface by executing the ifconfig command. The specific arguments for the ifconfig command depend on the Unix variant and operating system version (Linux, Solaris, Mac OS X ...). Please refer to your operating system manual to find out how to define virtual IP addresses on your system.

Assigning Multiple IP Addresses to an Exec Agent

Step 2: The second step is to assign these multiple IP addresses to the Exec Agent configuration. For the local host where the Web Admin GUI is running, the second step can be done by invoking the “Setup” menu inside the Project Navigator (gear-wheel icon in the top navigation).

For Remote Exec Agents, you must edit the file javaSetup.dat.

Step 2, via Setup:

Inside the setup menu, you must enter all IP addresses in the input field Local Exec Agent IP Addresses, separated by comma characters. Alternatively, there is an Auto Detect checkbox available which assigns all IP addresses configured at the operating system level automatically.

Step 2 for External Exec Agents (where no Web Admin GUI is available)

With a text editor, add the entry javaVirtualIpAddresses to the javaSetup.dat file (located inside the ZebraTester installation Directory) and list the IP addresses to the Exec Agent.

 

Important Note: when you start a load test, you must use the additional option -multihomed

to specify that multiple IP addresses are to be used by the Exec Agents.

This option is also supported by Exec Agent clusters (load injector clusters), in which case each load-releasing cluster member (Exec Agent) uses its own configuration of client IP addresses.

 

Can't find what you're looking for? Send an E-mail to support@apica.io