Skip to content

aniaan/eg-router-benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

benchmark

Preparing

(4core/32GB/) * 4

Name port vm version
ordered-v1 10080 vm1 main(golang 1.18.7)
ordered-v2 10080 vm2 feat/router(golang 1.18.7)
radixtree 10080 vm3 feat/router(golang 1.18.7)
hey - vm4 v0.1.4

case

Start up the easegress server on vm1, vm2, vm3 and create the mock-pipeline

egctl object create -f eg-router-benchmark/static/mock-pipe.yaml

Summary

The performance of ordered-v1 and ordered-v2 is basically the same, and the performance of radixtree is much better than them.

static: radixtree is about 3 times the performance of ordered

prefix: radixtree is about 3 times the performance of ordered

regexp: radixtree is about 40 times the performance of ordered

static

The test case for static routes will create 10000 routes with md5 values from 1 to 10000, and test requests will be accessed using md5 values of 5000.

1. ordered-v1

vm1:

egctl object create -f eg-router-benchmark/static/order.yaml

stress test

vm4:

url: http://vm-1:10080/a35fe7f7fe8217b4369a0af4244d1fca

eg: ./hey -n 900 -c 50 -m GET http://vm-1:10080/a35fe7f7fe8217b4369a0af4244d1fca

requests concurrency tps
900 50 24068.3219
90000 100 26077.3742
90000 120 27219.1946

2. ordered-v2

vm2:

egctl object create -f eg-router-benchmark/static/order.yaml

stress test

vm4:

url: http://vm-2:10080/a35fe7f7fe8217b4369a0af4244d1fca

eg: ./hey -n 900 -c 50 -m GET http://vm-2:10080/a35fe7f7fe8217b4369a0af4244d1fca

requests concurrency tps
900 50 25078.4517
90000 100 27391.6867
90000 120 27401.6701

3. radixtree

vm3:

egctl object create -f eg-router-benchmark/static/redixtree.yaml

stress test

vm4:

url: http://vm-3:10080/a35fe7f7fe8217b4369a0af4244d1fca

eg: ./hey -n 900 -c 50 -m GET http://vm-3:10080/a35fe7f7fe8217b4369a0af4244d1fca

requests concurrency tps
900 50 41687.5741
90000 100 65122.1171
90000 120 65638.4786

prefix

The test case for prefix-matching routes will create 10000 routes with md5 values from 1 to 10000, and test requests will be accessed using md5 values of 5000

1. ordered-v1

vm1:

egctl object create -f eg-router-benchmark/prefix/order.yaml

stress test

vm4:

url: http://vm-1:10080/a35fe7f7fe8217b4369a0af4244d1fca/suffix

eg: ./hey -n 900 -c 50 -m GET http://vm-1:10080/a35fe7f7fe8217b4369a0af4244d1fca/suffix

requests concurrency tps
900 50 22110.7111
90000 100 26023.5309
90000 120 26016.2430

2. ordered-v2

vm2:

egctl object create -f eg-router-benchmark/prefix/order.yaml

stress test

vm4:

url: http://vm-2:10080/a35fe7f7fe8217b4369a0af4244d1fca/suffix

eg: ./hey -n 900 -c 50 -m GET http://vm-2:10080/a35fe7f7fe8217b4369a0af4244d1fca/suffix

requests concurrency tps
900 50 25449.3521
90000 100 28119.3687
90000 120 27882.9445

3. radixtree

vm3:

egctl object create -f eg-router-benchmark/prefix/redixtree.yaml

stress test

vm4:

url: http://vm-3:10080/a35fe7f7fe8217b4369a0af4244d1fca/suffix

eg: ./hey -n 900 -c 50 -m GET http://vm-3:10080/a35fe7f7fe8217b4369a0af4244d1fca/suffix

requests concurrency tps
900 50 36541.2653
90000 100 58698.0033
90000 120 65060.4261

regexp

The test case for regular matching routes will create 10000 RESTful style routes with the template /users/{username}/<i> and the test requests will be accessed using the md5 value of 5000

1. ordered-v1

vm1:

egctl object create -f eg-router-benchmark/regexp/order.yaml

stress test

vm4:

url: http://vm-1:10080/users/aniaan/5000

eg: ./hey -n 900 -c 50 -m GET http://vm-1:10080/users/aniaan/5000

requests concurrency tps
900 50 1769.1021
90000 100 1743.7057
90000 120 1743.2940

2. ordered-v2

vm2:

egctl object create -f eg-router-benchmark/regexp/order.yaml

stress test

vm4:

url: http://vm-2:10080/users/aniaan/5000

eg: ./hey -n 900 -c 50 -m GET http://vm-2:10080/users/aniaan/5000

requests concurrency tps
900 50 1733.3634
90000 100 1707.0785
90000 120 1686.6228

2. radixtree

vm3:

egctl object create -f eg-router-benchmark/regexp/radixtree.yaml

stress test

vm4:

url: http://vm-3:10080/users/aniaan/5000

eg: ./hey -n 900 -c 50 -m GET http://vm-3:10080/users/aniaan/5000

requests concurrency tps
900 50 38619.2734
90000 100 66155.8978
90000 120 66357.7316

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages