From edb076a71aa4038c45e69d3971e82dfbd4290daf Mon Sep 17 00:00:00 2001 From: Zsolt Ero Date: Fri, 23 Feb 2024 14:54:47 +0100 Subject: [PATCH] benchmark --- docs/quick_notes/http_benchmark.md | 51 +++++++++++++++++++++++++++--- init-server.py | 5 ++- 2 files changed, 51 insertions(+), 5 deletions(-) diff --git a/docs/quick_notes/http_benchmark.md b/docs/quick_notes/http_benchmark.md index e4bdf7d..b8d976c 100644 --- a/docs/quick_notes/http_benchmark.md +++ b/docs/quick_notes/http_benchmark.md @@ -1,6 +1,12 @@ -### wrk localhost +# wrk benchmarks -Real world usage, 500k requests replayed from server log. +Real world usage, 500k requests replayed from server log. + + + +### Hetnzer dedicated server with NVME ssd + +#### localhost clean cache after nginx restart. @@ -20,11 +26,11 @@ Transfer/sec: 3.84GB Super much overkill, we'd only need 125 MB/s for Gigabit connection and this is 3840 MB/s. Also max request time is super nice + no errors. -### wrk over network +#### over network ``` wrk -c10 -t4 -d60s -s /data/ofm/benchmark/wrk_custom_list.lua http://x.x.x.x -Running 1m test @ http://144.76.168.195 +Running 1m te st @ http://144.76.168.195 4 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 7.57ms 6.61ms 45.34ms 84.32% @@ -35,3 +41,40 @@ Transfer/sec: 103.01MB ``` Realistically this is the max over Gigabit connection. + +--- + + + +### BuyVM KVM machine with 1 TB BuyVM Block Storage Slab + +Advertisement: 40Gbit+ InfiniBand RDMA Storage Fabric giving near local storage performance. + +Reality: + +``` +wrk -c10 -t4 -d60s -s /data/ofm/benchmark/wrk_custom_list.lua http://localhost +Running 1m test @ http://localhost + 4 threads and 10 connections + Thread Stats Avg Stdev Max +/- Stdev + Latency 226.10ms 343.52ms 1.99s 87.75% + Req/Sec 29.77 38.06 272.00 89.72% + 3655 requests in 1.00m, 232.76MB read + Socket errors: connect 0, read 0, write 0, timeout 8 +Requests/sec: 60.87 +Transfer/sec: 3.88MB +``` + +Wow, this is 60 request per second compared to Hetzner's 47000, just wow! Repeated tests with hot cache resulted in a bit better performance, but still not Gigabit. + +``` +Requests/sec: 266.99 +Transfer/sec: 23.07MB +``` + +Abandoned the idea of using BuyVM, even though their unlimited bandwidth is quite unique in this price range in USA. + + + + + diff --git a/init-server.py b/init-server.py index 534a7ad..ea5a6c5 100755 --- a/init-server.py +++ b/init-server.py @@ -133,6 +133,9 @@ def upload_certificates(c): def install_benchmark(c): + """ + Read docs/quick_notes/http_benchmark.md + """ c1000k(c) wrk(c) @@ -215,7 +218,7 @@ def tile_gen(hostname, user, port): @common_options def debug(hostname, user, port): c = get_connection(hostname, user, port) - c.run('pwd') + install_benchmark(c) # upload_https_host_files(c) # run_http_host_sync(c)