libmicrohttpd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libmicrohttpd] Help : Any HTTP Performance Benchmark Comparison for


From: Evgeny Grin
Subject: Re: [libmicrohttpd] Help : Any HTTP Performance Benchmark Comparison for Microhttpd with Go HTTP Servers
Date: Thu, 29 Jun 2023 22:29:17 +0300
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0

Hi Forrest,

The tool for performance replies is shaping, I have alpha version and made some test with suggested wrk.
Here are the initial results:
-----------------------------------------
$ wrk -c100 -d30s -t4 http://127.0.0.1:39683
Running 30s test @ http://127.0.0.1:39683
  4 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   143.75us   57.42us   1.93ms   69.18%
    Req/Sec   102.70k     2.45k  108.02k    70.92%
  12262004 requests in 30.00s, 479.45MB read
Requests/sec: 408721.22
Transfer/sec:     15.98MB

$ wrk -c100 -d30s -t8 http://127.0.0.1:39683
Running 30s test @ http://127.0.0.1:39683
  8 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   110.83us  251.91us  23.18ms   99.77%
    Req/Sec   101.68k    15.28k  130.87k    65.28%
  24297494 requests in 30.10s, 0.93GB read
Requests/sec: 807215.36
Transfer/sec:     31.56MB

$ wrk -c400 -d30s -t8 http://127.0.0.1:39683
Running 30s test @ http://127.0.0.1:39683
  8 threads and 400 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   387.42us  159.03us  13.43ms   74.39%
    Req/Sec   109.04k    13.31k  133.24k    59.58%
  26036491 requests in 30.04s, 0.99GB read
Requests/sec: 866619.04
Transfer/sec:     33.89MB

$ wrk -c400 -d30s -t4 http://127.0.0.1:39683
Running 30s test @ http://127.0.0.1:39683
  4 threads and 400 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   482.26us  266.28us  25.07ms   94.71%
    Req/Sec   108.71k     4.57k  120.72k    80.42%
  12979154 requests in 30.06s, 507.49MB read
Requests/sec: 431811.63
Transfer/sec:     16.88MB

$ wrk -c1000 -d30s -t4 http://127.0.0.1:39683
Running 30s test @ http://127.0.0.1:39683
  4 threads and 1000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.17ms  475.29us  29.10ms   70.65%
    Req/Sec   101.63k     8.46k  126.45k    81.94%
  12121757 requests in 30.05s, 473.97MB read
Requests/sec: 403322.87
Transfer/sec:     15.77MB

$ wrk -c1000 -d30s -t8 http://127.0.0.1:39683
Running 30s test @ http://127.0.0.1:39683
  8 threads and 1000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     1.20ms  368.89us  20.19ms   88.20%
    Req/Sec    89.15k     8.66k  116.86k    71.04%
  21283031 requests in 30.09s, 832.18MB read
Requests/sec: 707233.60
Transfer/sec:     27.65MB
-----------------------------------------
I'll let you know when tool is published.

--
Evgeny


On 26.06.2023 3:52, lingweicai via libmicrohttpd wrote:
Thanks for your reply and the information. I setup my environmement to run the benchmark with "wrk -t 4 -c 1000 -d 10s" for go and microhttpd.


I configured libmicrohttp with epoll and tls. and run the benchmark with src/example/benchmark, the results are :


[root@oe23 examples]# wrk -t 4 -c 1000 -d 10s http://localhost:80/

Running 10s test @ http://localhost:80/

   4 threads and 1000 connections

   Thread Stats   Avg      Stdev     Max   +/- Stdev

     Latency     9.11ms   12.81ms 240.35ms   94.05%

     Req/Sec    19.52k     4.15k   31.42k    66.75%

   779860 requests in 10.10s, 110.07MB read

Requests/sec:  77221.73

Transfer/sec:     10.90MB


I also install golang, and run hello test like ( HTTP Server Benchmark (ssut.me) <https://tech.ssut.me/http-server-benchmark/> ), the results :

[root@oe23 ~]# wrk -t 4 -c 1000 -d 10s http://localhost:10000/

Running 10s test @ http://localhost:10000/

   4 threads and 1000 connections

   Thread Stats   Avg      Stdev     Max   +/- Stdev

     Latency     5.98ms    5.81ms  75.36ms   84.23%

     Req/Sec    47.99k    16.21k  104.91k    73.35%

   1907367 requests in 10.07s, 232.83MB read

Requests/sec: 189439.19

Transfer/sec:     23.12MB


The microhttp results are too slow. I looked the code of src/microhttpd/test_client_put_stop.c, but I dont know how to build it to a benchmark for a test with wrk.


any suggestions to build a "hello world" with Microhttp to compete with go in "wrk" ? though the results of "ab" of microhttp is better than go run "ab", as more benchmark is using "wrk", less mentioned in "ab", for example, "ab" is not on the list Top 10 HTTP Benchmarking and Load Testing Tools (thechief.io) <https://thechief.io/c/editorial/top-10-http-benchmarking-and-load-testing-tools/>


Thanks,

Forrest

Attachment: OpenPGP_0x460A317C3326D2AE.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]