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.
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.
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.
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.
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.
Was this helpful?