Re: [RFC v2] tcp: Export TCP Delayed ACK parameters to user
From: Daniel Baluta <hidden>
Date: 2011-10-31 20:02:20
On Mon, Oct 31, 2011 at 8:10 PM, Rick Jones [off-list ref] wrote:
Whether tracked as bytes or segments, my take is that to ask applications to have to think about another non-portable socket option is ungood. I would suggest taking the time to work-out the automagic heuristic to drop the deferred ACK count on connections where it being large is un-desirable and then not need to worry about the limits being global.
Your suggestion deserves further investigation, it looks tricky to find a good heuristic for increasing/decreasing the ACK deferred count.
Given the stack's existing propensity to try to decide when to increase the window I might even go so far as to suggest the sense of the heuristic be flipped and it seek to decide when it is ok to increase the number of segments/bytes per ACK. To what extent one needs to go beyond what happens already with the stretching of ACKs via GRO/LRO or if that mechanism can serve as part of the logic of the heuristic is probably a fertile area for discussion. If I recall correctly, in one of your earlier posts you mentioned something about a 20% performance boost. What were the specific conditions of that testing? Was it over a setup where the receiver already had LRO/GRO or was it over a more plain receiver NIC without that functionality?
If I remember correctly on the receiver side there was no LRO/GRO, but we tweaked some of /proc/sys/net/ipv4 parameters (e.g tcp_rmem). Also, the traffic was highly unidirectional with many clients feeding multimedia content to a server. Anyhow, we used our custom kernel which is an older kernel version. Are there any recommended benchmarks/tools for testing this kind of parameters? Daniel.