rbruenig / qperf

qperf is a performance measurement tool for QUIC similar to iperf
GNU General Public License v3.0
49 stars 8 forks source link

Add GSO support #5

Closed kosekmi closed 4 years ago

kosekmi commented 4 years ago

Add support for UDP generic segmentation offload, which was added to quicly in 03/2020: https://github.com/h2o/quicly/pull/293

GSO is enabled by -g cli option and requires linux kernel >= 4.18.

Perf eval shows less cpu cylces spent in sendmsg while using GSO (~70% to ~48%). Running on a loopback interface, transfer rates increase from ~3gbps to ~5gbps.

Emulating a 1gbps link between docker containers, measurements without GSO show CPU utilization ~100% and goodput topping at ~810mbps. Enabling GSO, CPU utilization drops to ~66%, goodput increases to ~920mbps.

kosekmi commented 4 years ago

I messed up the history - please ignore commits from 10th of May which have already been merged in https://github.com/rbruenig/qperf/pull/3 and https://github.com/rbruenig/qperf/pull/4

rbruenig commented 4 years ago

Thanks for the PR, will do a full review on the weekend. I already added one small remark

kosekmi commented 4 years ago

Thanks for the review, I addressed the issues and/or added comments.