Comparison of lighttpd and Apache (1.3) proxy vs SCGI front ends to a QP web application server. SCGI offers better performance on both web servers; proxy on Apache is surprisingly less performant. Overall lighttpd has a much smaller ram and resource utilization footprint. ================================================== QP web server direct 2.38 [ms] (mean) lighttpd 1.4.20 lighttpd proxy to QP 2.41 [ms] (mean) lighttpd SCGI 2.31 [ms] (mean) APACHE 1.3.41 APACHE 1.3 proxy to QP 3.39 [ms] (mean) APACHE 1.3 mod_scgi 2.30 [ms] (mean) ================================================== lighttpd example configuration: $HTTP["host"] == "localhost" { # proxy and scgi both point to "hello" example application # done for perf testing of proxy vs scgi $SERVER["socket"] == "0:8100" { proxy.server = ( "" => (("host" => "127.0.0.1", "port" => 8000)) ) } # port 80 default goes to SCGI scgi.server = ( "" => ( "localhost" => ( "host" => "127.0.0.1", "port" => 6000, "check-local" => "disable", "disable-time" => 5 ) ) ) } Results: ================================================== QP BASELINE - INTERNAL WEB SERVER ================================================== Server Software: qp/2.1 Server Hostname: localhost Server Port: 8000 Document Path: / Document Length: 12 bytes Concurrency Level: 1 Time taken for tests: 2.378 seconds Complete requests: 1000 Failed requests: 0 Broken pipe errors: 0 Total transferred: 174000 bytes HTML transferred: 12000 bytes Requests per second: 420.52 [#/sec] (mean) Time per request: 2.38 [ms] (mean) Time per request: 2.38 [ms] (mean, across all concurrent requests) Transfer rate: 73.17 [Kbytes/sec] received Connnection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 1 2 0.1 2 5 Waiting: 1 2 0.1 2 5 Total: 1 2 0.1 2 5 lighttpd proxy to QP ================================================== Server Software: lighttpd/1.4.20 Server Hostname: localhost Server Port: 8100 Document Path: / Document Length: 12 bytes Concurrency Level: 1 Time taken for tests: 2.409 seconds Complete requests: 1000 Failed requests: 0 Broken pipe errors: 0 Total transferred: 203000 bytes HTML transferred: 12000 bytes Requests per second: 415.11 [#/sec] (mean) Time per request: 2.41 [ms] (mean) Time per request: 2.41 [ms] (mean, across all concurrent requests) Transfer rate: 84.27 [Kbytes/sec] received Connnection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 2 2 0.1 2 5 Waiting: 1 1 0.1 1 4 Total: 2 2 0.1 2 5 lighttpd SCGI to QP ================================================== Server Software: lighttpd/1.4.20 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 12 bytes Concurrency Level: 1 Time taken for tests: 2.306 seconds Complete requests: 1000 Failed requests: 0 Broken pipe errors: 0 Total transferred: 203000 bytes HTML transferred: 12000 bytes Requests per second: 433.65 [#/sec] (mean) Time per request: 2.31 [ms] (mean) Time per request: 2.31 [ms] (mean, across all concurrent requests) Transfer rate: 88.03 [Kbytes/sec] received Connnection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 1 Processing: 1 2 0.1 2 5 Waiting: 1 2 0.2 2 4 Total: 1 2 0.1 2 5 APACHE 1.3 APACHE 1.3 MOD SCGI ================================================== Server Software: Apache/1.3.41 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 12 bytes Concurrency Level: 1 Time taken for tests: 2.300 seconds Complete requests: 1000 Failed requests: 0 Broken pipe errors: 0 Total transferred: 204000 bytes HTML transferred: 12000 bytes Requests per second: 434.78 [#/sec] (mean) Time per request: 2.30 [ms] (mean) Time per request: 2.30 [ms] (mean, across all concurrent requests) Transfer rate: 88.70 [Kbytes/sec] received Connnection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 1 2 0.1 2 4 Waiting: 1 1 0.1 1 3 Total: 1 2 0.1 2 4 APACHE 1.3 PROXY ================================================== Server Software: qp/2.1 Server Hostname: localhost Server Port: 80 Document Path: /foo/ Document Length: 12 bytes Concurrency Level: 1 Time taken for tests: 3.391 seconds Complete requests: 1000 Failed requests: 0 Broken pipe errors: 0 Total transferred: 246000 bytes HTML transferred: 12000 bytes Requests per second: 294.90 [#/sec] (mean) Time per request: 3.39 [ms] (mean) Time per request: 3.39 [ms] (mean, across all concurrent requests) Transfer rate: 72.54 [Kbytes/sec] received Connnection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 3 3 0.4 3 16 Waiting: 2 2 0.4 2 15 Total: 3 3 0.4 3 16