Determine your Web site's throughput limitations

If your Web site is growing and you are concerned about performance, I know a product you need to consider. Mercury Interactive created Astra SiteTest to let Web masters stress test their Web site easily, with minimal testing resources.

Astra SiteTest is the easiest program I've used to test Windows NT Magazine's Web site. When I first launched the program, a start screen asked whether I wanted to use the scenario wizard, open an existing scenario, or create a new scenario. Because I hadn't used the product before, I chose the wizard, shown in Screen 1. The wizard lets you create a scenario in a four-step process: select the script, configure the number of virtual users, set rendezvous points, and determine transactions.

Creating a Script
If you don't already have a script, you can create a new one with the Virtual User Generator tool. To generate a test script, run Virtual User Generator from the wizard or the program group. When I launched Virtual User Generator, it started my browser and recorded the pages I visited and the actions I performed on each page. When I finished browsing, I simply saved the script. Using the interface is as easy as pressing Record on a tape recorder and then pressing Stop when you've finished recording.

This script is a text file, which you can easily edit with Microsoft Notepad. Each line of the script represents one of five types of statements: http get, rendezvous, transaction, FormSubmit, and server login. Http get is the most common statement and references each universal resource locator (URL) for the script to access. The script I used for my test is shown in Listing 1, page 122, which includes four of the five types of statements (the script does not use server login).

What Is a Vuser?
To understand user behavior at your Web site, Astra SiteTest lets you create virtual users (vusers) to simulate Web users. Vusers traverse the Web site simultaneously, but they don't stop and read--vusers just move from page to page. However, Astra SiteTest lets you create a think time for vusers to simulate users reading a page. I selected the range to be 0 milliseconds, which forced the vusers to go immediately to the next page without pausing, because I was more interested in pounding the server to see how it performed with an extreme load.

Choosing the number of vusers depends on several variables, because the number of vusers does not correspond directly to the number of real users. The amount of RAM on your test machine also plays an important part in the number of vusers you can run. Initially, I selected 30 vusers, but the test failed. I soon learned that each vuser needs about 2MB of RAM. Because I had only 64MB of RAM, I needed fewer vusers to allow for system overhead. I used 20 vusers to perform the final testing, which worked well.

Because of the lack of direct correspondence, I looked at my Web log to calculate what 20 vusers would mean in real terms. I analyzed the average response time, the average time spent between pages, the number of users on the site at a given time, and the number of simultaneous requests. I found that 200 real users create 1.5 to 1.75 simultaneous requests. This calculation means that 20 vusers equal 7000 real users (20 users * 1.75 requests * 200 real users).

Transactions and Rendezvous Points
The wizard lets you select which transactions to use and which rendezvous points are active. You must manually add rendezvous points and transactions to a script. Rendezvous points let vusers wait for other vusers to join them so that they can enter an area together, which creates a peak load on the server. You can disable or enable rendezvous points anytime during a test scenario, and you can set how many vusers will rendezvous.

You can automatically define transactions in the script to measure a set of URL interactions. I defined portions of my script as specific transactions to quantify the performance of my search portion of the script and the URL interactions in the Windows NT forums. I did this measurement by placing lr_start_transaction("name") and lr_end_transaction("name") in the script. After the scenario finishes, the analysis starts automatically and displays the performance for each of my transactions in a graph.

Testing
Mercury Interactive designed Astra SiteTest to run on one testing machine. You then use this machine to test performance against your Web machine; you don't need additional client machines or a controller machine. Because of this simple design, I was ready to immediately start testing after installing the software. Screen 2 shows the tests that were ready to run.

I used Astra SiteTest on several Web site configurations. The most interesting test was against a new Web server designed for larger Web sites than mine. This machine was a quad 200MHz Pentium Pro with 1GB of RAM and eight 4GB hard disks on a RAID controller. I configured it with NT 4.0 running Internet Information Server (IIS) 3.0 and SQL Server 6.5. I had planned to replace my two original Web servers with this machine.

My test revealed that the machine did not perform better than the original Web servers. This performance was based on response times, number of errors, and timeouts. In fact, running IIS and SQL together caused worse performance. The machine timed out on several page requests when tested with 20 vusers. I tried the test again with 10 vusers. The machine still failed to serve some pages, and again timed out on requests.

As a result of this test, Astra SiteTest gave me quantifiable data to tell the machine's manufacturer. The machine did not perform to my expectations or the manufacturer's claims, even after the manufacturer reconfigured it. Astra SiteTest proved that the best solution (when my machine is running IIS and SQL server) is to use two machines: one running IIS and the other running SQL Server.

A Laudable Product
I loved using Astra SiteTest--thumbs-up to Mercury Interactive. The documentation is a little thin, but the interface is so easy to use, I didn't even need the documentation. The product has so many graphs to choose from in the analysis phase that I had a difficult time deciding which one to use. However, everything is grouped in logical categories--after I looked at all the graphs, I knew which one I wanted.

If you are maintaining a Web site, Astra SiteTest is a must-have tool. It has helped me rethink my Web site strategy and start implementing a design that will handle traffic volume and growth, before my Web site goes live.

Astra SiteTest
Contact: Mercury Interactive * 408-523-9900 or 800-837-8911
Web: http://www.mercuryinteractive.com
Price: $9500 for 50 virtual users
System Requirements: 120MHz Pentium (minimum), 64MB of RAM, Network access