iqiyi / dpvs

DPVS is a high performance Layer-4 load balancer based on DPDK.
Other
3k stars 723 forks source link

DPVS performance evaluation #54

Closed lapnd closed 6 years ago

lapnd commented 6 years ago

Hi, I would like to replicate your performance test results on our servers. Would you mind to share more detailed in your test setup? (such as test diagram, how to setup the test, how to run the test ..) Thank you!

beacer commented 6 years ago

We use HTTP clients (wrk) and servers (nginx) to test, clients <-> dpvs <-> servers. All machines (clients/servers/dpvs) are physical machines,

When test, we have 5 HTTP clients running wrk and another 5 for Nginx. The kernel sysctl parameter and IRQ affinity must be optimized on clients and servers.

For DPVS setting, pls refer: https://github.com/iqiyi/dpvs/blob/master/doc/tutorial.md .

lapnd commented 6 years ago

Thank Lei, I'm able to set up the test. However, the client app wrk report Requests/sec and Transfer/sec, how did you translate them to packet per second? And from your test report, with 07 cores, DPVS can reach to ~14Mpps with packet size = 64 bytes, it's line rate for 10G NIC! . Is it ok to say that we can get line rate (packet size = 64 bytes) with DPVS (using 7 cores)? Thank you!

beacer commented 6 years ago

We calculate pps by dpip link show command. When we test, the avg packet size is 98B instead of 64B, because we are useing wrk to test HTTP request/response,and disable "keepalive" on Nginx. When using 7 cores we get the line-rate for 10G NIC (with 98B).

lapnd commented 6 years ago

Thank you for your explanation!

tiepnv-viosoft commented 6 years ago

Hi beacer, Could you let me know which mode did you use to do Performance Test?

Thanks,

beacer commented 6 years ago

@tiepnv-viosoft FNAT mode.

tiepnv-viosoft commented 6 years ago

Thank you for your reply, Is it the FNAT_1arm?

beacer commented 6 years ago

Both one-arm and two arm are tested, the data in README.md is two-arm.

tiepnv-viosoft commented 6 years ago

Thank you very much for your support!

tiepnv-viosoft commented 6 years ago

Hi beacer, As you said that:

We calculate pps by dpip link show command

Could you explain me specifically how to get pps parameter in dpvs? And is your Performance Test result is calculated based on Tx or Rx? I also ran ipvsadm -ln --rate and dpip link -s show but they didn't show any expected output.

I look forward to receiving your help soon. Thanks,

ywc689 commented 6 years ago

ipvsadm -ln --rate is not supported by dpvs yet. You can try something like this dpip link -s show dpdk0 i 3 -C to get PPS of specified device.

tiepnv-viosoft commented 6 years ago

Thank you very much!