Stress Testing

Introduction to Stress Testing
Preparing for the Stress Test
Issuing Stress Test Commands
Viewing the Stress Test Report
Stress Testing Chats
Troubleshooting

Introduction to Stress Testing

Web Crossing has a built-in stress testing feature that provides an invaluable means for a sysop to test the capacity of and optimize a Web Crossing server.

The way it works is as shown in figure 1. A second (it may be unlicensed) Web Crossing server is used to send requests automatically to your main Web Crossing server. These requests take the form of multiple clients accessing the main Web Crossing server and pounding it with read and write requests. The testing server also generates a report you can use to evaluate the main server's performance and make necessary adjustments to optimize serving performance.

Figure 1 - Running a Web Crossing Stress Test

The actual stress test commands are issued by sending special URLs to the second Web Crossing server.

The second Web Crossing server can run on the same machine as the main server you are testing, or it can run anywhere on your LAN or over the Internet. To get the best, actual results of your Web Crossing server performance run the second Web Crossing on the same machine as your main server. This will avoid network delays in sending and processing requests.

Preparing for the Stress Test

Once you have prepared, you are ready to issue a stress test command to the second server.

Issuing Stress Test Commands

A stress test command sent to the second server is a URL of the following form (URLs here are broken for clarity, and so they appear correctly on the page, but these should be all one line):

http://secondURL?200@sysop:pwdSecond@204-
clients-duration-interval-viewsPerPost-
http%3A//ipAddress/cgi-bin/webx%3F14%40
sysop%3ApwdMain%40/Test

Example:

http://www2.webxharbor.net/webx?200@sysop:tmppwd@204-
5
-900-1-20-
http%3A//202.219.13.82/cgi-bin/webx%3F14%40
sysop%3A
supersecret%40/Test

The various parts of this URL are:

After issuing the stress test command the test commences. You can wait for the test to end or interrupt it at any time by issuing the command to show the test results report.

Viewing the Report

You can view the report showing the results of your stress test by entering the command:

http://secondURL?200@sysop:pwdSecond@204-0

Example:

http://www2.webxharbor.net/webx?200@sysop:tmppwd@204-0

SecondURL and tmppwd are defined above. The 204-0 command means to stop the stress test and issue a report.

Note: The format for issuing stress tests looks cumbersome and hard to remember. It is. So please, once you have created the complicated URL string needed to issue a stress test command, save it somewhere so you can use it again easy with COPY/PASTE. I save my stress test and stress test report URLs in my Macintosh "Notepad." It is easy to find there. (The Notepad acts as a handy, searchable free-form database for all sorts of miscellaneous information such as this.)

Stress Testing Chats

You can use a similar method for stress testing chat rooms by having the second Web Crossing server emulate incoming chat users. Please note that there is a fairly rigid setup for this test:

The format for the stress test command URL is as follows (URLs here are broken for clarity, and so they appear correctly on the page, but these should be all one line):

http://ip.of.client.server/webx?200@
sysop:pw-of-client-server@.table-of-client-server
@6-nn-ip.of.server.being.tested-webxPort-
.table-of-room-being-tested-startMin-runMin-
shutdownMin-messageSecs-hopSecs

Example:

http://www2.webxharbor.net/webx?200@
sysop:tmppwd@.ee6b3b4
@6-5-202.219.13.82-5000-
.ee6b3b4-1-5-
4-3-60

The URL parts are as follows:

When you enter this lengthly URL into your browser, the client server returns "Test started -- check log file for results," however there actually is no log file generated. What you need to do is enter the chat room on the main server to get a feel for how the response times are, and take this into consideration for you plans for the number of fanout servers and what-have-you.

Note: (These limitations do not apply to Unix servers - only to Mac and Windows servers) The Web Crossing direct-access service running at the control room only keeps 5 listens outstanding. If more than 5 test users are simultaneously trying to call the Web Crossing direct server, the excess test users will get a connection error and terminate. This is part of the reason why spreading out the users over some startup period is required (and also emulates real life).

Each chat fanout server only keeps 10 listens outstanding for clients. If more than 10 test users try to enter the chat server itself simultaneously, then the excess test users get an error and terminate.

As a result of these two limits, you may well see in the status panel that not all the users you were expecting actually arrived.

You can send multiple stress test commands out and each set of tests will run simultaneously. It is a good idea to build up a set of tests with 50 to 100 users to get a realistic feel for performance under busy conditions.

Troubleshooting

I can't get the stress test to run.

I am getting a "service in use" error message after I set the direct database access feature on in the control panels.

Resources

Sysop Docs

Web Crossing FAQ