Real-Time Live Web Server Stress Testing e-utility with Minimal Live Server Impact
Original Publication Date: 2002-Apr-27
Included in the Prior Art Database: 2003-Jun-20
A solution is disclosed that is capable of stress testing webservers and web applications by taking live traffic from a running production webserver and using that information to create stress tests. The actual stress testing can be offloaded to another machine as to not create load upon the production server. There exist a plethora of stress testing tools that webmasters and web solution designers can use to test their infrastructure. All of these existing solutions have several shortcomings. These solutions are not capable of reproducing all aspects of the load that is placed upon an infrastructure during the serving of web traffic. The first shortcoming that is addressed by this solution is that it is invariably very hard to estimate end user traffic patterns. The ability to have real traffic to stress test with is of great importance. In order for a test to be useful you must be stress testing the proper parts of the infrastructure, this can only be accomplished by testing with either real traffic or traffic that correctly simulates real traffic. This solution addresses this by analyzing, in real time, the incoming traffic and using that information to create a real time stress test that accurately represents end user traffic patterns. This information can be gleaned in one of two ways. First a program can “tail” the webserver access log and analyze it in real time. The second approach is to write a webserver plugin that analyzes the traffic as it comes to the webserver. The second approach is recommended since it will provide the real time traffic information in a timelier manner. The second shortcoming that this disclosure solves is the fact that the other known stress testing tools are not capable of stress testing in near real time. This is important because there are other factors that produce load on the serving infrastructure. One example factor is content publishing. This solution addresses this by having the aforementioned method of getting real traffic and then sending that information encapsulated in a streaming protocol to the stress-testing controller. The stress-testing controller analyzes that information, filters it and uses it to create stress tests that it then distributes to its stress daemons. The stress daemons carry out the stress tests and return the results to the stress-testing controller.