| nbsp; |
Introduction / Background
I work for the Health Sciences Library (HSL). The IT Services department is in the
process of bringing up 2 duplicate web servers to replace an older server in hosting the Library's 4
websites. One of these websites, NC Health Info (project
page), is a cooperative project between the National Library of Medicine's
MEDLINEPlus team, HSL and SILS. It is a fairly high profile project and the site is expected to
get a tremendous amount of traffic when it is released to the public in a few months.
In anticipation of an unprecendented load on our new web servers and to generally assess the servers'
ability to handle traffic on our 4 sites, my classmate and ITS colleague, Kevin Lanning, and
I are identifying and installing performance testing software on Linux laptops. Per the recommendation
of others who manage high traffic web sites (i.e. Ibiblio staff), we will be using more than one
testing package in combination to test the servers so we can test a wider range of server
functionality than we could with a single package.
So far, we have identified several testing packages through
Freshmeat.net. Kevin has installed an oepn source (GNU) package called
Siege and I have obtained a trial license for and installed a comparabe vendor
product called Web Performance Trainer. We will be working together in the coming week(s)
to set up various test profiles which we will apply to the servers.
Use of laptops to run the testing software will allow us to do the testing on the same network switch
as the new web servers use and thereby prevent putting this additional traffic onto the larger campus
network. Also, Kevin has contacted IT security and UNC networking and obtained permission for this testing.
Finally, these web server performance testing and analysis tools and the experience we gain using
them will be invaluable for future web site / server testing projects.
Software Overview
Web Performance Trainer (WPT) is a load, stress and performance testing tool for http / https servers.
It enables web developers to see how their site code and any component database transactions will stand
up under various usage loads that is may experience via the internet when put into production.
The fully licensed version of WPT can simulate 500 concurrent users/ browser
sessions hitting a server; the trial version I am installing
is limited to simulating 20 concurrent users / browser sessions.
The load (e.g. hits per hour) placed on a server / site by WPT is a product of the number of simulated
users, the number of site URLs contained in the test scenario and the duration of the test.
A web site interaction test scenario or "business case" is created by
recording a real interaction, including the "think time" a user spends filling out a form or ready a
information page, with the site to be tested. These business cases can be edited, copied,
pasted and combined into a "load profile" which can then be played back against the target web site as
a "performance test".
In playing back a simple (single business case) load profile, the tester can configure various
parameters for the test including network speed / bandwidth, the number of initial simulated users
executing the business case interaction, a rate of increase in the number of simulated users over time,
whether and how long to wait between repeats of the business case, random starts of the profile
among the simulated users, and the duration of the test in minutes, hours or
days. Configurable parameters such as concurrent simulated users enable shorter tests of page loading
speeds, longer tests of the site's ability to handle stress over time, as well as maximum load tests to
find the breaking point of the server in terms of concurrent users.
More complex and realistic testing can be accomplished by creating load profiles consisting of
multiple business cases, each with different usage settings / characteristics (e.g. site interactions,
bandwidth, concurrent users, duration, etc.). For example, you can have 20% of the simulated users
filling out a request form, while 60% of the users are looking at an informational page
and the remaining 20% are doing searches. The flexible configurability enables the tester to establish load profiles that realistically
simulate existing or new load patterns on their server / site.
Finally, WPT provides the ability to view and analyze (via reports and graphs) test data
at the transaction/load profile, web page or individual URL level. WPT analysis reports provide
answers to key questions about website performance, such as "What is the slowest page on the
website?", "What was the longest load time for a specific page?" and "How many users can the website
handle?"
Web Performance Trainer is a product of Web Performance,
Inc, a Raleigh, NC -based company founded in 1999. The current release of the product which I
installed is Web Performance Trainer 2.5. It runs on Linux, Solaris, Windows NT, Windows 2000, and
Windows XP.
Installation and Configuration Narrative
In order to install this proprietary software, I obtained a 20 concurrent user trial license from Web
Performance, Inc. via email by submitting the
trial registration form on their web site. I then downloaded the software (wptl2_5.bin) from
http://webperformanceinc.com/download. I downloaded
both license key and software into a /tmp directory in my home directory on the linux laptop computer
that will serve as one of the performance test machines. I also installed the software on my home
computer so it can serve as a remote test machine.
Installation instructions for this software are provided on the vendor site at
http://webperformance.com/support/manual/installation.html. This software uses a
graphical installer and cannot be installed solely via the command line like RPMs or source tarballs we've
installed previously. My WPT install logs for the laptop
and for my home computer therefore show my
activities leading up to the point that the graphic installer loads.
The first step for installing this software is to run the installer. The documentation did not give
any detail on how to do this so this step took a while and some hints on the command line sytax from
the Web Performance Trainer support desk to complete. After adding execute permissions (chmod 755)
to the wptl2_5.bin file, I successfully ran the installer with the following command:
$ ./wptl2_5.bin
I could also have run the installer via the RUN utility in the GNOME or KDE graphic desktops, but I
was interested in what I would see when running at the command line. When prompted by the graphical
installer, I elected to install the WPT program in /user/local/WPTrainer2_5. In order to install to
this directory, I had to become root (su -) BEFORE running the installer since there was not way to sudo the
installation once the installer launched. I elected to install the symbolic links for running the WPT
program in /home/barrie/WPTrain2_5.
After the program was installed, I was able to locate the command and permissions details regarding
installation missing from the online documenation in the install.txt file intalled with the program.
This file also indicated that
the browser configured to be used by WPT needed to be in the PATH of the user (/usr/local/netscape) and
that the safest place to install the WPT program on Linux / Unix was in the user's home directory since
root permissions were need to install elsewhere. The file also indicated no known issues with Linux
isntallations.
For both WPT installations, I elected to install the complete package which includes a GUI Controller
for recording, editing and playing back load tests and a Remote Engine for generating load tests.
Once the installation completed successfully, I exited out of the root shell and cded to
/home/barrie/WPTrain2_5 to start the program. Upon startup, the program prompts for the location of
the license key. To load successfully, this license key file had to be in the same directory as the
executable i.e. /usr/local/WPTrainer2_5. Also essential to running the program is that XWindows be running to provide
the support for the graphic interface used by this software. So the commands required to get the program running are:
$ startx (then open a terminal window for command line start; could also have used RUN command within the Gnome GUI interface)
$ sudo ./Web_Performance_Trainer
NOTE: due to the install location, this program must always be run as root (sudo) or I would need to
apply a "sticky bit" to the executable file (and perhaps change permissions on /usr/local/) to
allow me to run it as a regular user---I need to investigate this further.
Once the program loads the first time, it provides tabs to
configure an available (on the machine)
browser for use by WPT. This includes selecting the browser to use and whether to automate various
tasks related to browser use that must be done to run WPT more effectively:
- auto launch the browser when recording - selected
- auto configure the browser (manual proxy settings) when recording - selected
- clear cookies before recording - selected
- clear cache before recording - selected
- inherit browser proxy settings - selected.
Other browser configuration selections included:
- which ports the browser was to use when recording - I kept the defaults of 8081 for http and 8082 for https
- whether to record gif and html retrieved during testing - no, don't need to analyze page content, just http headers returned
- whether to test sites via a proxy server - not applicable in my case for either computer.
After configuring the Netscape as my WPT browser, the WPT program testing screen loaded and I clicked
on the Record button to record a brief test business case. Since I configured the browser (Netscape)
to launch when recording, Netscape loaded and brought the local wptrainer.html file that confirms that
the browser proxy setting are properly configured to user WPT. I then pointed my browser at my home
page to recorded a very brief test case. I stopped recording and saved the file (testHP.wpt) to the
WPTrain2_5 directory in my home page.
Next, I as able to create a load profile with that test "business case" and rerun it after setting some
parameters like concurrent users (2), duration (1 minute), increase users by 1 every 10 second. The
program definately recorded data and seemed to rerun the recorded interaction successfully, however the
statistical reports and graphs indicated "no data" so there is something amiss with the setup.
I am also getting a warning when I run a load profile that "the
configured duration and modem speed will not allow some or all the business cases to complete".
I ran the test on my home computer which has a dynamic IP address and
high security (ports 8081 and 8082 were not explicitly opened for incoming traffic) so I will need to
do some additional investigation and configuration to make this testing software fully functional on
this machine. Sufficient data seems not to be received back from the site tested with which to generate
meanful analysis reports. I'm hopefully most of the way there; the program does load and run.
I'll be continuing to work with this program as we prepare to run real tests against our web servers
over the next week or 2 and I'll update this page as the kinks are resolved.
Instructions for Use
The Web Performance Trainer program has a graphical interface with fairly easy to understand buttons
(with helpful rollover button hints). In using the program to set up and run a performance test, the
first step is to begin recording a business case by clicking the Start/Record button. If you've
configured the program to launch browser when recording (recommended) your selected browser loads
a page confirming that the program is running properly. which basically consists of a selected
(typical) sequence
of interactions (browsing/searching/reading/completing a form) on the test target web site. This
interaction sequence is called a business case and when you've recorded the interactions you want, you
stop recording by clicking the stop button. Multiple business cases can be created in the smae way.
The next step is to create 1 or more load profiles for use in testing the target site. To create a
load profile, just select the load profile tab and select from the list of available business case
those you wish to be a part of a given load profile..this can be 1 or more. Then set other parameters
for the load profile such as number of conurrent users to start with, number by which to increment them
(if at all), the duration of the test and the delay between repeated runs of the profile.
When running tests, the capacity of the computer running the test is a critical factor. Running the
tests, particularly with multiple concurrent users configured, is a CPU and memory intensive operation
so no background processes should be running while WPT is working. WPT will monitor CPU usage to ensure
it does not overload the computer and will stop adding new simulated users if the CPU load get too
high (80%).
Once tests are run and their corresponding data files saved, select the analysis and graph tabs to get
analysis reports and graphs of the statistical data gathered from the load test.
Functionality
As described above, the program is successfully installed and loads properly. It seems to successfully
record business cases and create load profiles. However, since the statistical reportingn and graphinc
functions are reporting "no data" and I'm getting a warning regarding my network speed and durations
settings preventing cases from running successfully, I need to investigate further and possibly do some
additional configuration, particularly on my home computer, to get this software fully functional as a
testing tool.
|