RoadSign/test
2024-01-26 13:07:42 +08:00
..
data 🧪 Add SSE test tools 2024-01-26 13:07:42 +08:00
nginx Sync config 2023-12-10 18:55:13 +08:00
roadsign Uses v2 configration schema 2024-01-25 00:09:39 +08:00
roadsign-spa Uses v2 configration schema 2024-01-25 00:09:39 +08:00
roadsign-ssr Uses v2 configration schema 2024-01-25 00:09:39 +08:00
roadsign-with-prefork Uses v2 configration schema 2024-01-25 00:09:39 +08:00
README.md Sync config 2023-12-10 18:55:13 +08:00

Benchmark

This result is design for test the performance of the roadsign. Welcome to contribute more tests of others reverse proxy software!

Platform

All tests are running on my workstation:

                     ..'          littlesheep@LittleSheepdeMacBook-Pro
                 ,xNMM.           ------------------------------------
               .OMMMMo            OS: macOS Sonoma 14.1 23B2073 arm64
               lMM"               Host: MacBook Pro (14-inch, Nov 2023, Three Thunderbolt 4 ports)
     .;loddo:.  .olloddol;.       Kernel: 23.1.0
   cKMMMMMMMMMMNWMMMMMMMMMM0:     Uptime: 2 days, 1 hour, 16 mins
 .KMMMMMMMMMMMMMMMMMMMMMMMWd.     Packages: 63 (brew), 4 (brew-cask)
 XMMMMMMMMMMMMMMMMMMMMMMMX.       Shell: zsh 5.9
;MMMMMMMMMMMMMMMMMMMMMMMM:        Display (Color LCD): 3024x1964 @ 120Hz (as 1512x982) [Built-in]
:MMMMMMMMMMMMMMMMMMMMMMMM:        DE: Aqua
.MMMMMMMMMMMMMMMMMMMMMMMMX.       WM: Quartz Compositor
 kMMMMMMMMMMMMMMMMMMMMMMMMWd.     WM Theme: Multicolor (Dark)
 'XMMMMMMMMMMMMMMMMMMMMMMMMMMk    Font: .AppleSystemUIFont [System], Helvetica [User]
  'XMMMMMMMMMMMMMMMMMMMMMMMMK.    Cursor: Fill - Black, Outline - White (32px)
    kMMMMMMMMMMMMMMMMMMMMMMd      Terminal: iTerm 3.4.22
     ;KMMMMMMMWXXWMMMMMMMk.       Terminal Font: MesloLGMNFM-Regular (12pt)
       "cooc*"    "*coo'"         CPU: Apple M3 Max (14) @ 4.06 GHz
                                  GPU: Apple M3 Max (30) [Integrated]
                                  Memory: 18.45 GiB / 36.00 GiB (51%)
                                  Swap: Disabled
                                  Disk (/): 72.52 GiB / 926.35 GiB (8%) - apfs [Read-only]
                                  Local IP (en0): 192.168.50.0/24 *
                                  Battery: 100% [AC connected]
                                  Power Adapter: 96W USB-C Power Adapter
                                  Locale: zh_CN.UTF-8

Results

The tests are run in the order nginx -> roadsign without prefork -> roadsign with prefork. There is no reason why nginx performance should be affected by hardware temperature.

Nginx

go-wrk -c 60 -d 120 http://localhost:8001
# => Running 120s test @ http://localhost:8001
# =>   60 goroutine(s) running concurrently
# => 515749 requests in 1m59.953302003s, 245.92MB read
# => Requests/sec:           4299.58
# => Transfer/sec:           2.05MB
# => Avg Req Time:           13.954846ms
# => Fastest Request:        0s
# => Slowest Request:        410.6972ms
# => Number of Errors:       0

RoadSign

go-wrk -c 60 -d 120 http://localhost:8000
# => Running 120s test @ http://localhost:8000
# =>   60 goroutine(s) running concurrently
# => 8905230 requests in 1m56.215762709s, 3.52GB read
# => Requests/sec:		76626.70
# => Transfer/sec:		30.98MB
# => Avg Req Time:		783.016µs
# => Fastest Request:	28.542µs
# => Slowest Request:	46.773083ms
# => Number of Errors:	0

RoadSign w/ Prefork

go-wrk -c 60 -d 120 http://localhost:8000
# => Running 120s test @ http://localhost:8000
# =>  60 goroutine(s) running concurrently
# => 4784308 requests in 1m59.100307178s, 1.89GB read
# => Requests/sec:		40170.41
# => Transfer/sec:		16.24MB
# => Avg Req Time:		1.493636ms
# => Fastest Request:	34.291µs
# => Slowest Request:	8.727666ms
# => Number of Errors:	0