Revolyssup commented on PR #12353:
URL: https://github.com/apache/apisix/pull/12353#issuecomment-2999367932

   @bzp2010 I ran a benchmark to test whether the `shdict:get` brings too much 
performance degradation. But based on below results I don't think this should 
be an issue.
   
   ## Configuration used
   config.yaml
   ```yaml
   apisix:
     node_listen: 1984
   deployment:
     role: data_plane
     role_data_plane:
       config_provider: yaml
   nginx_config:
     worker_processes: 8
   discovery:
     nacos:
         host:
           - "http://nacos:nacos@127.0.0.1:8848";
         prefix: "/nacos/v1/"
         fetch_interval: 1
         weight: 1
         timeout:
           connect: 2000
           send: 2000
           read: 5000
   ```
   
   apisix.yaml
   ```yaml
   routes:
     -
       uri: /hello
       upstream:
         service_name: APISIX-NACOS
         discovery_type: nacos
         type: roundrobin
   #END
   ```
   Here are the results.
   ```bash
   ❯ wrk -c 10 -t 5 -d 30s -R 50000 http://localhost:1984/hello
   Running 30s test @ http://localhost:1984/hello
     5 threads and 10 connections
     Thread calibration: mean lat.: 2999.418ms, rate sampling interval: 10395ms
     Thread calibration: mean lat.: 2885.546ms, rate sampling interval: 10125ms
     Thread calibration: mean lat.: 2857.330ms, rate sampling interval: 10059ms
     Thread calibration: mean lat.: 2967.000ms, rate sampling interval: 10231ms
     Thread calibration: mean lat.: 2953.790ms, rate sampling interval: 10256ms
     Thread Stats   Avg      Stdev     Max   +/- Stdev
       Latency    11.12s     3.06s   16.47s    57.49%
       Req/Sec     4.52k    82.05     4.63k    60.00%
     689405 requests in 30.00s, 110.45MB read
   Requests/sec:  22980.47
   Transfer/sec:      3.68MB
   
   ```
   
   
   ```bash
   ❯ wrk -c 10 -t 5 -d 30s -R 50000 http://localhost:1984/hello
   Running 30s test @ http://localhost:1984/hello
     5 threads and 10 connections
     Thread calibration: mean lat.: 3060.053ms, rate sampling interval: 10584ms
     Thread calibration: mean lat.: 3084.401ms, rate sampling interval: 10772ms
     Thread calibration: mean lat.: 3254.041ms, rate sampling interval: 11198ms
     Thread calibration: mean lat.: 3093.539ms, rate sampling interval: 10985ms
     Thread calibration: mean lat.: 3062.424ms, rate sampling interval: 10772ms
     Thread Stats   Avg      Stdev     Max   +/- Stdev
       Latency    11.89s     3.36s   17.74s    56.68%
       Req/Sec     4.13k    39.11     4.18k    60.00%
     623009 requests in 30.00s, 99.81MB read
   Requests/sec:  20767.18
   Transfer/sec:      3.33MB
   ```
   
   ## Result
   The QPS dropped from 22980.47 to 20767.18 with ~2k difference. I think this 
should be acceptable given the issue with events library this PR solves. 
According to me, it's an okay tradeoff


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@apisix.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to