RoadSign/test/benchmark/README.md
LittleSheep ef0464234a
All checks were successful
release-nightly / build-docker (push) Successful in 1m59s
📝 Update benchmark
2023-11-30 22:35:46 +08:00

3.3 KiB

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