Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
apache_benchmarks [2015/06/01 15:33] steve [Example CGP Graph] |
apache_benchmarks [2015/06/01 20:59] steve [Sample Benchmark] |
||
---|---|---|---|
Line 22: | Line 22: | ||
Before you do any tests suites, use CGP to determine that average number of webserver connections over a specific period of time (week, month, etc.). Then use that average as the number of concurrent connections, to simulate the benchmark under normal conditions. | Before you do any tests suites, use CGP to determine that average number of webserver connections over a specific period of time (week, month, etc.). Then use that average as the number of concurrent connections, to simulate the benchmark under normal conditions. | ||
- | |||
- | Using Ragnar and this system load as an example, 4.7 is the average # of connections over one hour (3600 seconds). [[http://ragnarrelay.com/cgp/detail.php?p=apache&pi=localhost&t=apache_connections&h=ragnarrelay.com&s=3600|reference]] | ||
- | |||
- | Please note that this average is for all the traffic that the website generates -- not just one page. | ||
Once you have the average number of connections, you can simulate the load under any length of time. Fifteen seconds (one quarter of a minute) is a good number that is both realistic in simulation as well as wait time for the tester. | Once you have the average number of connections, you can simulate the load under any length of time. Fifteen seconds (one quarter of a minute) is a good number that is both realistic in simulation as well as wait time for the tester. | ||
Line 39: | Line 35: | ||
Running a test over a period of time is probably going to be easier to see, as you can watch the results in realtime with the system load. The opposite, using a number of requests, would be good if you wanted to simulate a sudden spike. | Running a test over a period of time is probably going to be easier to see, as you can watch the results in realtime with the system load. The opposite, using a number of requests, would be good if you wanted to simulate a sudden spike. | ||
- | ==== Sample Benchmark ==== | ||
- | |||
- | Using a local checkout of Ragnar's server, with an Apache installation on my desktop, here are some benchmark tests, using PHP and the ''prefork'' MPM, and the default Apache configuration. | ||
- | |||
- | == Default Settings == | ||
- | |||
- | * Timeout 300 | ||
- | * KeepAlive On | ||
- | * MaxKeepAliveRequests 100 | ||
- | * KeepAliveTimeout 15 | ||
- | * ServerTokens Prod | ||
- | |||
- | == MPM Settings == | ||
- | |||
- | * StartServers 5 | ||
- | * MinSpareServers 5 | ||
- | * MaxSpareServer 10 | ||
- | * MaxClients 150 | ||
- | * MaxRequestsPerChild 10000 | ||
- | |||
- | == Results == | ||
- | |||
- | Timeout value for all results are 15 seconds. | ||
- | |||
- | * R/S = Requests per second [#/sec] (mean) | ||
- | * TPR = time per request | ||
- | * TPR (mean) = (mean) | ||
- | * TPR (all) = (mean, across all concurrent requests) | ||
- | ^ Concurrent ^ R/S ^ TPR (mean) ^ TPR (all) ^ | ||
- | | 20 | 17.6 | 1136 | 56 | | ||
- | | 40 | 29.19 | 1370 | 34 | | ||
- | | 60 | 25.22 | 2378 | 40 | | ||
- | | 80 | 28.45 | 2812 | 35 | | ||
- | | 100 | 26.79 | 3732 | 37 | | ||
- | | 120 | 23.86 | 5028 | 42 | | ||
- | | 140 | 24.71 | 5665 | 40 | | ||
- | | 160 | 23.15 | 6911 | 43 | | ||
- | | 180 | 14.65 | 12283 | 68 | | ||
- | | 200 | 10.59 | 18885 | 94 | |