This is a companion discussion topic for the original entry at https://linuxconfig.org/ultimate-web-server-benchmark-apache-nginx-litespeed-openlitespeed-caddy-lighttpd-compared
benchmarking default configs can lead to poor benchmarks
@Lubos
The article ultimate-web-server-benchmark-apache-nginx-litespeed-openlitespeed-caddy-lighttpd-compared
(new posters are prohibited from adding links to posts)
used Debian default configs for these server. Debian default configs are typically aimed at user-friendliness, not at benchmarks.
For example, the Debian lighttpd default config contains index-file.names = ( "index.php", "index.html" )
. Any site interested in performance is probably going to configure PHP-FPM. (Besides, any site really interested in performance is probably not using PHP.) A benchmark accessing the root of the site http://server-ip/
should use lighttpd.conf index-file.names = ( "index.html" )
. Your benchmark of lighttpd will be even faster without the unnecessary check for index.php.
Similarly, using Debian default configs – and note how I am highlighting Debian default configs rather than the upstream default configs from the website vendors – for siege
without increasing connection limits is a poor benchmark.
Setting lighttpd.conf server.max-fds = 4096
is quite reasonable and will allow lighttpd to pass the siege 200 connection test with flying colors.
@Lubos quoting from your article:
“Test 8 (Siege Benchmark – 200 Users, Sustained Load) significantly influenced the rankings. Only NGINX and OpenLiteSpeed completed this test, while Apache, LiteSpeed, Caddy, and Lighttpd failed due to hanging or hitting connection limits. As a result, these servers received a score of 0% for this test, which impacted their final performance average.”
…
“The results in this test reflect default configurations and limited resources (2048MB RAM), meaning some servers may perform significantly better when properly configured.”
@Lubos, your disclaimer is insufficient when combined with you factoring 0% into the results for Debian default configs which were not trivially tuned to allow the benchmark to succeed. I understand not spending large amounts of time tuning each server, but you should spend a small effort changing the default config if necessary for the benchmarking tests to succeed. ALL of the web servers can handle the load. That is not what you benchmarked and so your conclusions are biased and much less useful than they otherwise could be.
Please consider updating the article with better data. I am a lighttpd developer and offer my assistance if you need help trivially configuring any of the servers to pass your siege 200 test.
Thank you for your consideration.
Hello @gstrauss ,
thank you for your comment. Much appreciated!
Sorry about that. If the links would be enabled this forum will become a URL junkyard in no time and at the same time it will take all of my time as moderator. Not worth it…
Configuration: index-file.names = ( “index.html” )
$ date ; time ab -n 20000 -c 1000 http://172.16.1.74/
Fri Feb 14 11:11:54 AM CET 2025
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.1.74 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests
Server Software: lighttpd/1.4.69
Server Hostname: 172.16.1.74
Server Port: 80
Document Path: /
Document Length: 1300 bytes
Concurrency Level: 1000
Time taken for tests: 2.498 seconds
Complete requests: 20000
Failed requests: 0
Total transferred: 30260000 bytes
HTML transferred: 26000000 bytes
Requests per second: 8007.85 [#/sec] (mean)
Time per request: 124.877 [ms] (mean)
Time per request: 0.125 [ms] (mean, across all concurrent requests)
Transfer rate: 11831.91 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 58 9.5 57 81
Processing: 19 64 11.3 64 109
Waiting: 1 40 16.3 39 80
Total: 58 122 11.2 123 154
Percentage of the requests served within a certain time (ms)
50% 123
66% 128
75% 130
80% 131
90% 135
95% 137
98% 138
99% 139
100% 154 (longest request)
real 0m2,538s
user 0m0,253s
sys 0m2,223s
Configuration: index-file.names = ( “index.php”, “index.html” )
2x tests
linuxconfig@linuxconfig:~$ date ; time ab -n 20000 -c 1000 http://172.16.1.74/
Fri Feb 14 11:12:31 AM CET 2025
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.1.74 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests
Server Software: lighttpd/1.4.69
Server Hostname: 172.16.1.74
Server Port: 80
Document Path: /
Document Length: 1300 bytes
Concurrency Level: 1000
Time taken for tests: 2.458 seconds
Complete requests: 20000
Failed requests: 0
Total transferred: 30260000 bytes
HTML transferred: 26000000 bytes
Requests per second: 8135.90 [#/sec] (mean)
Time per request: 122.912 [ms] (mean)
Time per request: 0.123 [ms] (mean, across all concurrent requests)
Transfer rate: 12021.10 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 58 13.6 56 121
Processing: 27 63 14.3 62 130
Waiting: 0 26 13.4 26 125
Total: 49 121 16.2 124 178
Percentage of the requests served within a certain time (ms)
50% 124
66% 127
75% 128
80% 128
90% 130
95% 149
98% 164
99% 171
100% 178 (longest request)
real 0m2,477s
user 0m0,240s
sys 0m2,092s
linuxconfig@linuxconfig:~$ date ; time ab -n 20000 -c 1000 http://172.16.1.74/
Fri Feb 14 11:13:03 AM CET 2025
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.1.74 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests
Server Software: lighttpd/1.4.69
Server Hostname: 172.16.1.74
Server Port: 80
Document Path: /
Document Length: 1300 bytes
Concurrency Level: 1000
Time taken for tests: 2.546 seconds
Complete requests: 20000
Failed requests: 0
Total transferred: 30260000 bytes
HTML transferred: 26000000 bytes
Requests per second: 7854.27 [#/sec] (mean)
Time per request: 127.319 [ms] (mean)
Time per request: 0.127 [ms] (mean, across all concurrent requests)
Transfer rate: 11604.99 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 60 12.6 58 119
Processing: 23 65 16.4 63 161
Waiting: 0 46 15.8 45 117
Total: 53 124 21.9 120 222
Percentage of the requests served within a certain time (ms)
50% 120
66% 130
75% 132
80% 134
90% 140
95% 166
98% 205
99% 214
100% 222 (longest request)
real 0m2,581s
user 0m0,264s
sys 0m2,166s
Yes, this was a major disappointment as I was unable to complete this test on all servers using the default configuration. I could have simply disregarded the test and omitted it from the results, but that would have been somewhat unfair to the constants that passed the test. Hence, the bold red disclaimer. Please know that I completely understand where you are coming from!
As per your suggestion, if we can find the minimal configuration for all web servers without bias that allows them to complete the test, we can update test #8 with new results while also highlighting the specific configurations each server requires to pass it.
However, I feel that it might not be an easy task to avoid bias once we start modifying the configuration files. Not to mention that you may naturally lean toward Lighttpd as its developer. That said, this is a public website, and I’m happy to address any concerns from other camps as well. Let me know.
Here’s the corrected version of your text:
I have already run some tests with your suggested configuration, but Lighttpd still did not pass. Increasing server.max-connections = 100000
, for example, seemed to have some impact; however, I was unable to pass tests lasting longer than 30 seconds.
Here are the test results.
Note: I used the ab
command before each test to ensure the server was up and ready.
Configuration:
server.max-fds = 65535
server.max-connections = 100000
server.stat-cache-engine = "simple"
root@linuxconfig:/var/log/lighttpd# cat /proc/$(pgrep lighttpd)/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 7613 7613 processes
Max open files 65535 65535 files
Max locked memory 8388608 8388608 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 7613 7613 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
TEST:
linuxconfig@linuxconfig:~$ date ; time ab -n 20000 -c 1000 http://172.16.1.74/
Fri Feb 14 10:41:31 AM CET 2025
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.1.74 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests
Server Software: lighttpd/1.4.69
Server Hostname: 172.16.1.74
Server Port: 80
Document Path: /
Document Length: 1300 bytes
Concurrency Level: 1000
Time taken for tests: 2.488 seconds
Complete requests: 20000
Failed requests: 0
Total transferred: 30260000 bytes
HTML transferred: 26000000 bytes
Requests per second: 8038.82 [#/sec] (mean)
Time per request: 124.396 [ms] (mean)
Time per request: 0.124 [ms] (mean, across all concurrent requests)
Transfer rate: 11877.67 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 57 17.2 57 143
Processing: 25 66 20.5 63 185
Waiting: 0 48 18.5 46 144
Total: 52 122 22.4 118 219
Percentage of the requests served within a certain time (ms)
50% 118
66% 127
75% 131
80% 132
90% 135
95% 180
98% 198
99% 207
100% 219 (longest request)
real 0m2,510s
user 0m0,256s
sys 0m2,103s
linuxconfig@linuxconfig:~$ date ; time siege -c200 -b -t20S http://172.16.1.74/
Fri Feb 14 10:41:48 AM CET 2025
{ "transactions": 62527,
"availability": 100.00,
"elapsed_time": 19.65,
"data_transferred": 64.57,
"response_time": 0.06,
"transaction_rate": 3182.04,
"throughput": 3.29,
"concurrency": 193.07,
"successful_transactions": 62527,
"failed_transactions": 0,
"longest_transaction": 0.85,
"shortest_transaction": 0.00
}
real 0m19,681s
user 0m8,350s
sys 0m10,742s
linuxconfig@linuxconfig:~$ date ; time ab -n 20000 -c 1000 http://172.16.1.74/
Fri Feb 14 10:42:25 AM CET 2025
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.1.74 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests
Server Software: lighttpd/1.4.69
Server Hostname: 172.16.1.74
Server Port: 80
Document Path: /
Document Length: 1300 bytes
Concurrency Level: 1000
Time taken for tests: 2.440 seconds
Complete requests: 20000
Failed requests: 0
Total transferred: 30260000 bytes
HTML transferred: 26000000 bytes
Requests per second: 8196.04 [#/sec] (mean)
Time per request: 122.010 [ms] (mean)
Time per request: 0.122 [ms] (mean, across all concurrent requests)
Transfer rate: 12109.97 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 54 9.6 53 77
Processing: 18 65 13.9 64 125
Waiting: 0 46 14.7 44 105
Total: 51 119 12.5 120 166
Percentage of the requests served within a certain time (ms)
50% 120
66% 124
75% 127
80% 128
90% 132
95% 136
98% 147
99% 154
100% 166 (longest request)
real 0m2,500s
user 0m0,260s
sys 0m2,144s
linuxconfig@linuxconfig:~$ date ; time siege -c200 -b -t30S http://172.16.1.74/
Fri Feb 14 10:42:34 AM CET 2025
HANGS
#############################
Configuration: DEFAULT
# cat /proc/$(pgrep lighttpd)/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 7613 7613 processes
Max open files 1024 524288 files
Max locked memory 8388608 8388608 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 7613 7613 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
date ; time ab -n 20000 -c 1000 http://172.16.1.74/
Fri Feb 14 10:51:46 AM CET 2025
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.1.74 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests
Server Software: lighttpd/1.4.69
Server Hostname: 172.16.1.74
Server Port: 80
Document Path: /
Document Length: 1300 bytes
Concurrency Level: 1000
Time taken for tests: 2.529 seconds
Complete requests: 20000
Failed requests: 0
Total transferred: 30260000 bytes
HTML transferred: 26000000 bytes
Requests per second: 7907.78 [#/sec] (mean)
Time per request: 126.458 [ms] (mean)
Time per request: 0.126 [ms] (mean, across all concurrent requests)
Transfer rate: 11684.05 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 31 8.4 30 72
Processing: 32 93 14.6 94 135
Waiting: 1 83 14.6 85 120
Total: 56 124 14.0 125 167
Percentage of the requests served within a certain time (ms)
50% 125
66% 130
75% 133
80% 134
90% 136
95% 147
98% 159
99% 163
100% 167 (longest request)
real 0m2,559s
user 0m0,250s
sys 0m2,206s
linuxconfig@linuxconfig:~$ date ; time siege -c200 -b -t20S http://172.16.1.74/
Fri Feb 14 10:52:03 AM CET 2025
^C
HANGS
##################################
Configuration:
server.max-fds = 4096
# cat /proc/$(pgrep lighttpd)/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 7613 7613 processes
Max open files 4096 4096 files
Max locked memory 8388608 8388608 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 7613 7613 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
$ date ; time ab -n 20000 -c 1000 http://172.16.1.74/
Fri Feb 14 10:55:04 AM CET 2025
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.1.74 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests
Server Software: lighttpd/1.4.69
Server Hostname: 172.16.1.74
Server Port: 80
Document Path: /
Document Length: 1300 bytes
Concurrency Level: 1000
Time taken for tests: 2.542 seconds
Complete requests: 20000
Failed requests: 0
Total transferred: 30260000 bytes
HTML transferred: 26000000 bytes
Requests per second: 7867.80 [#/sec] (mean)
Time per request: 127.100 [ms] (mean)
Time per request: 0.127 [ms] (mean, across all concurrent requests)
Transfer rate: 11624.98 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 60 15.5 57 132
Processing: 9 64 14.5 63 136
Waiting: 0 45 13.8 44 127
Total: 58 124 22.2 122 219
Percentage of the requests served within a certain time (ms)
50% 122
66% 127
75% 132
80% 134
90% 139
95% 174
98% 199
99% 210
100% 219 (longest request)
real 0m2,583s
user 0m0,271s
sys 0m2,158s
linuxconfig@linuxconfig:~$ date ; time siege -c200 -b -t20S http://172.16.1.74/
Fri Feb 14 10:55:11 AM CET 2025
HANGS
##################################
Configuration:
server.max-fds = 65535
server.max-connections = 100000
# cat /proc/$(pgrep lighttpd)/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 7613 7613 processes
Max open files 65535 65535 files
Max locked memory 8388608 8388608 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 7613 7613 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
$ date ; time ab -n 20000 -c 1000 http://172.16.1.74/
Fri Feb 14 10:57:35 AM CET 2025
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.1.74 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests
Server Software: lighttpd/1.4.69
Server Hostname: 172.16.1.74
Server Port: 80
Document Path: /
Document Length: 1300 bytes
Concurrency Level: 1000
Time taken for tests: 2.642 seconds
Complete requests: 20000
Failed requests: 0
Total transferred: 30260000 bytes
HTML transferred: 26000000 bytes
Requests per second: 7568.91 [#/sec] (mean)
Time per request: 132.119 [ms] (mean)
Time per request: 0.132 [ms] (mean, across all concurrent requests)
Transfer rate: 11183.37 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 62 14.9 60 124
Processing: 8 67 13.2 67 128
Waiting: 0 37 15.1 36 106
Total: 56 129 16.4 127 184
Percentage of the requests served within a certain time (ms)
50% 127
66% 132
75% 136
80% 137
90% 140
95% 167
98% 183
99% 183
100% 184 (longest request)
real 0m2,685s
user 0m0,293s
sys 0m2,288s
linuxconfig@linuxconfig:~$ date ; time siege -c200 -b -t20S http://172.16.1.74/
Fri Feb 14 10:57:43 AM CET 2025
{ "transactions": 62022,
"availability": 100.00,
"elapsed_time": 19.32,
"data_transferred": 64.05,
"response_time": 0.06,
"transaction_rate": 3210.25,
"throughput": 3.32,
"concurrency": 191.62,
"successful_transactions": 62023,
"failed_transactions": 0,
"longest_transaction": 1.64,
"shortest_transaction": 0.00
}
real 0m19,348s
user 0m8,170s
sys 0m10,715s
linuxconfig@linuxconfig:~$ date ; time ab -n 20000 -c 1000 http://172.16.1.74/
Fri Feb 14 10:58:11 AM CET 2025
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.1.74 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests
Server Software: lighttpd/1.4.69
Server Hostname: 172.16.1.74
Server Port: 80
Document Path: /
Document Length: 1300 bytes
Concurrency Level: 1000
Time taken for tests: 2.409 seconds
Complete requests: 20000
Failed requests: 0
Total transferred: 30260000 bytes
HTML transferred: 26000000 bytes
Requests per second: 8301.24 [#/sec] (mean)
Time per request: 120.464 [ms] (mean)
Time per request: 0.120 [ms] (mean, across all concurrent requests)
Transfer rate: 12265.41 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 57 10.2 56 83
Processing: 37 61 10.7 61 88
Waiting: 0 26 13.5 25 86
Total: 54 118 11.2 119 141
Percentage of the requests served within a certain time (ms)
50% 119
66% 124
75% 127
80% 129
90% 134
95% 136
98% 137
99% 138
100% 141 (longest request)
real 0m2,432s
user 0m0,250s
sys 0m2,125s
linuxconfig@linuxconfig:~$ date ; time siege -c200 -b -t30S http://172.16.1.74/
Fri Feb 14 10:58:22 AM CET 2025
{ "transactions": 91924,
"availability": 100.00,
"elapsed_time": 29.32,
"data_transferred": 94.92,
"response_time": 0.06,
"transaction_rate": 3135.20,
"throughput": 3.24,
"concurrency": 193.77,
"successful_transactions": 91924,
"failed_transactions": 0,
"longest_transaction": 1.57,
"shortest_transaction": 0.00
}
real 0m29,348s
user 0m12,684s
sys 0m15,972s
linuxconfig@linuxconfig:~$ date ; time ab -n 20000 -c 1000 http://172.16.1.74/
Fri Feb 14 10:58:56 AM CET 2025
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 172.16.1.74 (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests
Server Software: lighttpd/1.4.69
Server Hostname: 172.16.1.74
Server Port: 80
Document Path: /
Document Length: 1300 bytes
Concurrency Level: 1000
Time taken for tests: 2.372 seconds
Complete requests: 20000
Failed requests: 0
Total transferred: 30260000 bytes
HTML transferred: 26000000 bytes
Requests per second: 8430.34 [#/sec] (mean)
Time per request: 118.619 [ms] (mean)
Time per request: 0.119 [ms] (mean, across all concurrent requests)
Transfer rate: 12456.16 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 56 10.7 54 97
Processing: 28 61 12.8 60 103
Waiting: 0 40 15.3 38 96
Total: 47 117 14.4 117 159
Percentage of the requests served within a certain time (ms)
50% 117
66% 122
75% 125
80% 129
90% 137
95% 141
98% 147
99% 150
100% 159 (longest request)
real 0m2,391s
user 0m0,233s
sys 0m2,064s
linuxconfig@linuxconfig:~$ date ; time siege -c200 -b -t40S http://172.16.1.74/
Fri Feb 14 10:59:05 AM CET 2025
^C
HANGS
Lubos
Thank you for taking a look.
Are you sure that lighttpd hung, or is it siege which hung? Did you try to connect to lighttpd with a separate process while siege was running? e.g. using curl
My quick test on 127.0.0.1 suggests that siege -c200
results in more than 200 concurrent connections, which might indicate a bug or unexpected behavior from siege.
The output from siege is benchmarking the terminal speed. You may see a huge difference in performance if you direct the output to a file. time siege -c200 -b -t40S http://172.16.1.74/ > /tmp/siege.out
Debian is almost always out-of-date. Debian 12 ships with lighttpd 1.4.69, which was released Feb 2023, over two years ago. Latest lighttpd is lighttpd 1.4.77. I am testing with lighttpd 1.4.77, but will try to reproduce what you are seeing with siege in lighttpd 1.4.69.
I’ll try to post minor configuration changes for other servers later this weekend.
Cheers, Glenn
FYI: I changed the siege defaults in ~/.siege/siege.conf
to instead be verbose = false
and color = off
to avoid benchmarking the terminal.