Cheffo wrote: > What else I can change/test to improve performance?
First you'll have to give more info about the hardware on both systems, and the way you benchmarked them (e.g. did you benchmark over ethernet or from the same machine?). There are also a bunch of things that may make apache go faster/slower, for example DNS resolving for the logs, rewrite rules, etc. - you should test with (as much as they can be) identical configurations. On a slow-ish 2 CPU Pentium3 server, over gigabit network (remote client), I get: Server Software: Apache/2.2.3 Server Port: 80 Document Path: /file.txt Document Length: 9500 bytes Concurrency Level: 100 Time taken for tests: 27.300259 seconds Complete requests: 50000 Failed requests: 0 Write errors: 0 Total transferred: 489226808 bytes HTML transferred: 475025956 bytes Requests per second: 1831.48 [#/sec] (mean) Time per request: 54.601 [ms] (mean) Time per request: 0.546 [ms] (mean, across all concurrent requests) Transfer rate: 17500.20 [Kbytes/sec] received On the same server, ab running locally, I get: Server Software: Apache/2.2.3 Server Port: 80 Document Path: /file.txt Document Length: 9500 bytes Concurrency Level: 100 Time taken for tests: 30.8557 seconds Complete requests: 29194 Failed requests: 6 (Connect: 6, Length: 0, Exceptions: 0) Write errors: 0 Total transferred: 286117856 bytes HTML transferred: 277811424 bytes Requests per second: 972.86 [#/sec] (mean) Time per request: 102.790 [ms] (mean) Time per request: 1.028 [ms] (mean, across all concurrent requests) Transfer rate: 9311.04 [Kbytes/sec] received (Yes, this is a different version of apache than yours, but I'm illustrating a point :) ) Some more data points: - Remote client, apache, using keepalives: Requests per second: 2891.61 [#/sec] (mean) Time per request: 34.583 [ms] (mean) Time per request: 0.346 [ms] (mean, across all concurrent requests) Transfer rate: 27729.00 [Kbytes/sec] received - Remote client, using thttpd instead of apache (keepalives have no influence here): Requests per second: 3728.68 [#/sec] (mean) Time per request: 26.819 [ms] (mean) Time per request: 0.268 [ms] (mean, across all concurrent requests) Transfer rate: 35499.92 [Kbytes/sec] received Regarding this last one: It seems that FreeBSD really benefits from using 2 CPUs here. thttpd is a single-threaded async server, but the load on the machine shows cca 10% idle. Thttpd gets ~~45%, swi:net gets 45%, irq20:bge0 gets 20%, syslogd gets 5% and the rest goes where top can't follow. It looks like ipfw might be one of the limiting factors here (I use dynamic rules and the log shows ipfw discarding packets that look valid).
signature.asc
Description: OpenPGP digital signature