Set independant request and reply sizes for BounceBack.
A means to measure network responsiveness and throughput
Brought to you by:
rjmcmahon
Two patches to be able to configure the sizes for the BounceBack requests and replies independently of each other. Just in case the link is asymmetrical, or to emulate some RPC or HTTP transactions. I may have fixed some buffer overruns on the server in the process, I apologise for that.
Regards,
Jean
Curious to some use cases here? (PS. Fixing buffer overruns is a good thing - thanks for that.)
I'm not going to tell you all my secrets ;-)
Netperf RR allows to configure the request and reply independently of each other, and I've been using it extensively in the past. But Netperf does not have support for setting MSS, and does not have one of my favourite maintainers ;-)
As I said, this change makes it easier to emulate RPC or HTTP transactions. Basically, you can emulate some transactions from iperf and see how different perform. This is similar to how people are troubleshooting performance issues with wget, and allow to get the web server out of the equation.
My initial testing of BounceBack on idel links is that it's quite variable/noisy due to software scheduling and interrupt coalescence. If that's what you want to measure, that's fine. I think bigger request and replies may be needed to tease out the actual contribution from the network.
I'm comparing AQMs (CoDel, PI2) with schedulers (DRR, such as the one in fq). The scheduler implementation in fq is smart, a new flow jump the queue. That will give very low ping in bufferbloat situations. I want to use bigger requests spanning multiple MSS to get a more realistic situation where actual scheduling need to happen to process the full request.
On the other hand, I want to minimise congestion on the return channel so that it does not impact the results, so I want to make the reply as small as possible.
Ok, most of the code is here. I still need to do some cosmetic fixes to outputs.
Thanks, that was quick !
I realised that I left a bug in my code that seems to have confused you. I took that opportunity to reorganise a bit, and expand your great idea of auto-adjusting mBufLen. I also added --bounceback-request to the man page.
Nice - thanks for this. I did a few more error messages and didn't allow for auto-adjust if -l is set.
Still need to fix server/listener side setting of mBufLen when reply is larger than -l
I quickly tested. It seems to do its job. Great work !
FYI, I posted the latest man page. I really appreciate your help with this.