Introducing ZeusBench
You’ll find ZeusBench in the admin/bin directory of your ZXTM installation. Run ZeusBench with the -–help option to display the comprehensive help documentation:
Using ZeusBenchZeusBench generates HTTP load by sending requests to the desired server. It can run in two different modes: ConcurrencyWhen run with the –c N option, ZeusBench simulates N concurrent HTTP clients. Each client makes a request, reads the response and then repeats, as quickly as possible. Concurrency mode is very stable and will quickly push a web server to its maximum capacity if sufficient concurrent connections are used. It's very difficult to overpower a web server unless you select far too many concurrent connections, so it's a good way to get stable, repeatable transactions-per-second results. This makes it suitable for experimenting with different performance tunings, or looking at the effect of adding TrafficScript rules. RateWhen run with the –r N option, ZeusBench sends new HTTP requests at the specified rate (requests per second) and reads responses when they are returned. Rate mode is suitable to test whether a web server can cope with a desired transaction rate, but it is very easy to overwhelm a server with requests. It's great for testing how a service copes with a flash-crowd - try running one ZeusBench instance for background traffic, then fire off a second instance to simulate a short flash crowd effect. Rate-based tests are very variable; it's difficult to get repeatable results when the server is overloaded, and it’s difficult to determine the maximum capacity of the server (use a concurrency test for this). Comparing concurrency and rateThe charts below illustrate two ZeusBench tests against the same service; one where the concurrency is varied, and one where the rate is varied:
The concurrency-based tests apply load in a stable manner, so are effective at measuring the maximum achievable transactions-per-second. However, they can create a backlog of requests at high concurrencies, so the response time will grow accordingly. The rate-based tests are less prone to creating a backlog of requests so long as the request rate is lower then the maximum transactions-per-second. For lower request rates, they give a good estimate of the best achievable response time, but they quickly overload the service when the request rate nears or exceeds the maximum sustainable transaction rate. Controlling the tests
KeepalivesKeepalives can make a very large difference to the nature of a test. By default, ZeusBench will open a TCP connection and use it for one request and response before closing it. If ZeusBench is instructed to use keepalives (with the –k flag), it will reuse TCP connections indefinitely; the –K N option can specify the number of times a connection is reused before it is closed. Other ZeusBench optionsWe’ve just scratched the surface of the options that ZeusBench offers. ZeusBench gives you great control over timeouts, the HTTP requests that it issues, the ability to ramp up concurrency or rate values over time, the SSL parameters and more. Run
for the detailed help documentation:
There's a detailed README document in the admin/bin directory; also here. Running benchmarksWhen running a benchmark, it is always wise to sanity-check the results you obtain by comparing several different measurements. For example, you can compare the results reported by ZeusBench with the connection counts charted in ZXTM's Activity Monitor. Some discrepancies are inevitable, due to differences in per-second counting, or differences in data transfers and network traffic counts. Benchmarking requires a careful, scientific approach, and you need to understand what load you are generating and what you are measuring before drawing any detailed conclusions. Furthermore, the performance you measure over a low-latency local network may be very different to the performance you can achieve when you put a service online at the edge of a high-latency, lossy WAN. For more information, you may like to refer to the following benchmarking articles on www.zeus.com:
The Apache and WebLogic papers describe a set of tests where a network simulator was used to slow connections down; they investigated the likely real-world performance of the applications over WAN links. The article Dynamic Rate Shaping of Slow Applications gives a worked example of the use of zeusBench to determine how to rate-shape traffic to a slow application. Support for ZeusBenchPlease note that ZeusBench is provided free-of-charge and is not supported by Zeus Technology. We use it internally and will make best efforts to ensure that it is reliable, stable, efficient and accurate. Also note that the ZXTM Development Licenses impose a maximum request rate of 10 requests per second; this will obviously impede any benchmarking attempts. You can commence a managed evaluation and obtain a license key that gives unrestricted performance if required. KudosCredits for ZeusBench are due in a large part to Ben, one of Zeus' distinguished engineers, who created ZeusBench for an internal automated benchmarking project out of frustration with ApacheBench. ZeusBench is a key part of our internal automated benchmarking framework which runs continually on development builds to detect performance regressions, and which is used for the majority of performance figures that Zeus publishes. |
Recently...
Other Resources
|

When we released 




