The topology for this test is as follows :
In this test, all the hosts, end-points and load-balancer run in separate dedicated servers/nodes. Server specs used - Intel(R) Xeon(R) Silver 4210R CPU @ 2.40GHz - 40 core RAM 125GB, Kernel 5.15.0-52-generic. The following command can be used to configure loxilb for the given topology:
# loxicmd create lb 184.108.40.206 --tcp=2020:5001 --endpoints=220.127.116.11:1,18.104.22.168:1,22.214.171.124:1
The default mode of LoxiLB is RR(round-robin) while other popular distribution modes such as consistent hash(Maglev), WRR etc are also supported.
We run popular tool netperf for the above topology. A quick explanation of terminologies used :
RPS - requests per seconds. Given a fixed number of connections, this denotes how many requests/message per second can be supported
CPS - connections per second. This denotes how many new TCP connection setup/teardowns can be supported per second and hence one of the most important indicators of load-balancer performance
CRR - connect/request/response. This is same as CPS but netperf tool uses this term to refer to CPS as part of its test scenario
RR - request/response. This is another netperf test option. We used it to measure min and avg latency
We are comparing loxilb with ipvs and haproxy.
The results are as follows :
Connections per second (TCP_CRR)
Requests per second (TCP_RR)
- loxilb provides enhanced performance across the spectrum of tests. There is a noticeable gain in CPS.
- loxilb's CPS scales linearly with number of cores
- haproxy version used - 2.0.29
- netperf test scripts can be found here