================================================================================ CPU Intel(R) Core(TM) i9-13900K @ 5.5 GHz, performance governor CPU security patches all ON RAM 192 GB, DDR5 5600 MT/s SSD 2 TB NVMe SSD UFW Firewall ON OS Ubuntu 24.04 LTS (with all security updates) FDs prlimit --pid=$$ --nofile=1048576 TST LITESPEED-preferred IBM Apache Benchmark (AB) https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:faq:performing-a-benchmark -------------------------------------------------------------------------------- Why LITESPEED recommends IBM Apache Benchmark (AB): IBM AB was written long before 2001 multi-core CPUs surfaced. Event-based AB is NOT using worker processes or threads - hence its inability to saturate fast multi-process servers (like NGINX) or multi-thread servers (like G-WAN). The only reason why LITESPEED **in 2025** keeps advising to use AB instead of NGINX wrk (or its corrected version wrk2) is that LITESPEED shines with AB and does not shine at all with NGINX wrk/wrk2 (see our wrk2 tests). One thing remains constant with LITESPEED (whether AB or wrk2 is used), this is the inordinate amount of LITESPEED "failed requests" (IBM AB terminology) or "Non-2xx or 3xx responses" and "Socket errors" (NGINX wrk2 terminology). G-WAN had no such errors in any of the AB and wrk2 benchmarks - even when G-WAN, tested with wrk2. serves hundreds of MILLION RPS - while LITESPEED and NGINX merely serve hundreds of THOUSAND RPS. ================================================================================ LITESPEED 6.3.4 Enterprise => 121k RPS (G-WAN:111k RPS, NGINX:92k RPS) (2 workers x 6 threads) ╰─▶ 99 Failed ╰─▶ 0 Failed ╰─▶ 0 Failed G-WAN time taken for tests: 8.974 seconds, 0 failed requests, 111k RPS LITESPEED time taken for tests: 8.262 seconds, 99 failed requests, 121k RPS NGINX time taken for tests: 10.894 seconds, 0 failed requests, 92k RPS ^^ ^^^^ Notes: with 99 failed requests, LITESPEED is less stable than NGINX & G-WAN (further AB and wrk2 tests confirm LITESPEED's inclination for errors). ================================================================================ ab -n 1000000 -c 1 -k http://127.0.0.1:8081/100.html 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 127.0.0.1 (be patient) Completed 100000 requests Completed 200000 requests Completed 300000 requests Completed 400000 requests Completed 500000 requests Completed 600000 requests Completed 700000 requests Completed 800000 requests Completed 900000 requests Completed 1000000 requests Finished 1000000 requests Server Software: LiteSpeed Server Hostname: 127.0.0.1 Server Port: 8081 Document Path: /100.html Document Length: 100 bytes Concurrency Level: 1 Time taken for tests: 8.262 seconds Complete requests: 1000000 Failed requests: 99 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< (Connect: 0, Receive: 0, Length: 99, Exceptions: 0) Keep-Alive requests: 999901 Total transferred: 385961786 bytes HTML transferred: 99990100 bytes Requests per second: 121038.47 [#/sec] (mean) Time per request: 0.008 [ms] (mean) Time per request: 0.008 [ms] (mean, across all concurrent requests) Transfer rate: 45621.31 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 0 0 0.0 0 1 Waiting: 0 0 0.0 0 0 Total: 0 0 0.0 0 1 Percentage of the requests served within a certain time (ms) 50% 0 66% 0 75% 0 80% 0 90% 0 95% 0 98% 0 99% 0 100% 1 (longest request) ================================================================================ Here, more AB tests are done to demonstrate that LITESPEED: -------------------------------------------------------------------------------- 1. has many, many of the socket errors that AB calls "failed requests" 2. this is a visible trend whatever AB's number of event-based connections 3. AB fails to really stress LITESPEED (compare the scores below to wrk2's) -------------------------------------------------------------------------------- ab -n 1000000 -c 10 -k http://127.0.0.1:8081/100.html 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 127.0.0.1 (be patient) Completed 100000 requests Completed 200000 requests Completed 300000 requests Completed 400000 requests Completed 500000 requests Completed 600000 requests Completed 700000 requests Completed 800000 requests Completed 900000 requests Completed 1000000 requests Finished 1000000 requests Server Software: LiteSpeed Server Hostname: 127.0.0.1 Server Port: 8081 Document Path: /100.html Document Length: 100 bytes Concurrency Level: 10 Time taken for tests: 2.634 seconds Complete requests: 1000000 Failed requests: 183 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< (Connect: 0, Receive: 0, Length: 94, Exceptions: 89) Keep-Alive requests: 999906 Total transferred: 385963716 bytes HTML transferred: 99990600 bytes Requests per second: 379611.38 [#/sec] (mean) Time per request: 0.026 [ms] (mean) Time per request: 0.003 [ms] (mean, across all concurrent requests) Transfer rate: 143082.24 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 0 0 0.0 0 2 Waiting: 0 0 0.0 0 2 Total: 0 0 0.0 0 2 Percentage of the requests served within a certain time (ms) 50% 0 66% 0 75% 0 80% 0 90% 0 95% 0 98% 0 99% 0 100% 2 (longest request) ================================================================================ ab -n 1000000 -c 100 -k http://127.0.0.1:8081/100.html 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 127.0.0.1 (be patient) Completed 100000 requests Completed 200000 requests Completed 300000 requests Completed 400000 requests Completed 500000 requests Completed 600000 requests Completed 700000 requests Completed 800000 requests Completed 900000 requests Completed 1000000 requests Finished 1000000 requests Server Software: LiteSpeed Server Hostname: 127.0.0.1 Server Port: 8081 Document Path: /100.html Document Length: 100 bytes Concurrency Level: 100 Time taken for tests: 2.577 seconds Complete requests: 1000000 Failed requests: 114 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< (Connect: 0, Receive: 0, Length: 57, Exceptions: 57) Keep-Alive requests: 999943 Total transferred: 385977998 bytes HTML transferred: 99994300 bytes Requests per second: 388035.62 [#/sec] (mean) Time per request: 0.258 [ms] (mean) Time per request: 0.003 [ms] (mean, across all concurrent requests) Transfer rate: 146262.90 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 1 Processing: 0 0 0.0 0 1 Waiting: 0 0 0.0 0 1 Total: 0 0 0.0 0 1 Percentage of the requests served within a certain time (ms) 50% 0 66% 0 75% 0 80% 0 90% 0 95% 0 98% 0 99% 0 100% 1 (longest request) ================================================================================ ab -n 1000000 -c 1000 -k http://127.0.0.1:8081/100.html 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 127.0.0.1 (be patient) Completed 100000 requests Completed 200000 requests Completed 300000 requests Completed 400000 requests Completed 500000 requests Completed 600000 requests Completed 700000 requests Completed 800000 requests Completed 900000 requests Completed 1000000 requests Finished 1000000 requests Server Software: LiteSpeed Server Hostname: 127.0.0.1 Server Port: 8081 Document Path: /100.html Document Length: 100 bytes Concurrency Level: 1000 Time taken for tests: 2.707 seconds Complete requests: 1000000 Failed requests: 0 Keep-Alive requests: 1000000 Total transferred: 386000000 bytes HTML transferred: 100000000 bytes Requests per second: 369414.95 [#/sec] (mean) Time per request: 2.707 [ms] (mean) Time per request: 0.003 [ms] (mean, across all concurrent requests) Transfer rate: 139252.12 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.3 0 12 Processing: 1 3 0.3 3 11 Waiting: 0 3 0.3 3 7 Total: 1 3 0.4 3 17 Percentage of the requests served within a certain time (ms) 50% 3 66% 3 75% 3 80% 3 90% 3 95% 3 98% 3 99% 4 100% 17 (longest request) ================================================================================ ab -n 1000000 -c 10000 -k http://127.0.0.1:8081/100.html 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 127.0.0.1 (be patient) Completed 100000 requests Completed 200000 requests Completed 300000 requests Completed 400000 requests Completed 500000 requests Completed 600000 requests Completed 700000 requests Completed 800000 requests Completed 900000 requests Completed 1000000 requests Finished 1000000 requests Server Software: LiteSpeed Server Hostname: 127.0.0.1 Server Port: 8081 Document Path: /100.html Document Length: 100 bytes Concurrency Level: 10000 Time taken for tests: 4.398 seconds Complete requests: 1000000 Failed requests: 0 Keep-Alive requests: 1000000 Total transferred: 386000000 bytes HTML transferred: 100000000 bytes Requests per second: 227396.66 [#/sec] (mean) Time per request: 43.976 [ms] (mean) Time per request: 0.004 [ms] (mean, across all concurrent requests) Transfer rate: 85717.88 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 8.0 0 103 Processing: 29 43 2.4 42 99 Waiting: 0 43 2.4 42 63 Total: 29 43 9.7 42 162 Percentage of the requests served within a certain time (ms) 50% 42 66% 42 75% 42 80% 43 90% 46 95% 46 98% 48 99% 100 100% 162 (longest request) ================================================================================