We used the Web Application Stress (WAS) tool extensively when creating and testing our sample clusters for functionality, performance, load balancing adjustment, and monitor testing. Because this tool realistically simulates multiple browsers requesting pages from a Web application, you can gather meaningful performance metrics.
You can create the scripts that the WAS tool uses in several ways: manually, by recording browser activity, by pointing to an IIS log file, by pointing to the content tree, or by importing a script. The many benefits of using Web Application Stress include:
Figure 10.2 shows the configuration options that are available in WAS. (Note: The last option, which is not fully visible, is Name resolution. You can enable this option so that network lookups on remote clients are supported.)
Figure 10.2 The WAS tool configuration window
In addition to the configuration options shown in Figure 10.2, you can configure individual pages that are used in your test scripts. Table 10.9 summarizes the main configuration settings that you can use at the page level.
Table 10.9 Page-Level WAS Configuration Options
Setting | Description |
---|---|
HTTP Verb | Specify the GET, POST, HEAD, or PUT method for handling the page. |
Querystring | Specify formatting; provide name, distribution, and value. Import ASP or HTML fields. |
Post data | Specify custom POST data in text or binary format. |
Custom headers | Use default header information or provide custom HTTP headers. Headers can be static or dynamic. |
SSL | Enable SSL for a page. |
Remote Data Services (RDS) | Enable Remote Data Services (RDS) and convert query to RDS format. |
Figure 10.3 shows the WAS reporting interface and the sample report that was generated after we ran one of our test scripts against a test cluster consisting of two Web servers.
Figure 10.3 Performance data generated by the WAS tool
NOTE
If you want to test loads for clients that are running the Microsoft Win32 API, download the Windows DNA Performance Kit Beta from http://www.microsoft.com/com/resources/windnaperf.asp.
Because a WAS stress test uses a small, limited set of client IP addresses and ports, the Network Load Balancing (NLB) assumption of wide distribution in client numbers is invalidated. As a result, you may observe uneven traffic across the cluster.
The following factors will affect the distribution of traffic in WAS testing for an NLB cluster:
NOTE
Adding multiple IP addresses to a single client will not affect WAS behavior because only one IP is ever used per computer.
At the socket level, WAS uses an implicit bind when making a request. This means that the operating system supplies the client IP address and port. Microsoft Windows NT behavior is to always provide the interface address from its routing table. This interface address is unique, so adding additional IP addresses to a network adapter does not provide more diversity to the WAS client address space.
NOTE
With Single or Class C affinity, the keep-alive feature will not affect load balancing. Disabling keep-alives applies only to the No affinity setting.
Windows NT uses incremental local port numbers in the 1500 through 4000 range, looping back to 1500 after exceeding the upper boundary. This provides excellent diversity in port numbers; however, keep-alives must be avoided in order for large page groups to take advantage of this.