Simulating Thousands of Thin Clients for Performance Testing

As Chief Technology Officer at 2X, I consider Software Quality Assurance (SQA) as one of the highest priorities of our development process. It’s always a challenge to test applications such as the 2X ThinClientServer and VirtualDesktopServer, which are intended to integrate with large number of users and devices, since it’s difficult to secure enough devices to effectively stress test the server. Such tests not only verify product stability, but also provide information to fine tune the product for optimal performance. An effective test lab may use 100-200 thin clients, but servers should be tested with even more devices.

At the 2X testing labs, we use the ThinClient Simulator application, which can simulate up to 5,060 thin clients using a single machine. The 2X ThinClientServer can manage thin clients booting in PXE mode or thin clients with an operating system already installed. In contrast, the 2X VirtualDesktopServer allows operating system installation via PXE alone.

ThinClient Simulator v2

ThinClient Simulator v2

PXE Mode

When a thin client boots in PXE mode, DHCP/BOOTP and TFTP protocols are used to retrieve the operating system from the server. Both protocols rely on UDP packets, making them unreliable, thus requiring retries and timeout settings. The application simulates the PXE booting procedure for each thin client, and can work with a BOOTP server, DHCP server or DHCP proxy.

Ideally, the simulator will begin sending DHCP/BOOTP packets having the source IP set to zero, since each thin client does not have an IP when it boots. The simulator can do this so long as the Windows XP, Vista, or Windows 7 operating systems aren’t used, since recent Windows operating systems boast heightened validation processes when using raw sockets, to safeguard against malicious code causing distributed denial of service attacks or sending spoofed packets. The simulator can still be used with these operating systems using a pre-configured source IP for each thin client, which is replaced with the IP given by the DHCP/BOOTP server.

Once IP negotiation is completed, the simulator needs to retrieve configuration files and a small operating system over the TFTP protocol. Using the files, the simulator can identify whether the server which replied is the 2X ThinClientServer or 2X VirtualDesktopServer, after which the simulator simulates an operating system reboot. If the replying server is the 2X VirtualDesktopServer, the application continues simulating the full operating system installation procedure; yet if the replying server is the 2X ThinClientServer, the simulation continues with a normal boot and 2X ThinClientServer logon, downloading the modules needed for a particular user. If a particular device is set to install the operating system on the 2X ThinClientServer, the simulator performs a full operating system installation. Both procedures use the 2X ThinClientServer or 2X VirtualDesktopServer over the HTTP protocol.

Hard Drive Installation

In this mode, the simulator uses the DHCP protocol to obtain the simulated thin client IP and discover the IP of the 2X ThinClientServer. The simulation then continues with a normal boot process, login to the 2X ThinClientServer and download of the modules needed for a particular user. Module downloads occur only if the version of each module on the server does not match the simulator’s pre-configured version, with the process using the 2X ThinClientServer over the HTTP protocol.

Through effectively expanding our lab testing capability to thousands of clients simultaneously, the 2X ThinClient Simulator ensures our products are fully stress-tested before they are released so that we meet the high expectations of our customers.