On Tue, Oct 10, 2023 at 3:14 PM Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx> wrote: > > On Tue, 10 Oct 2023 12:23:30 -0700 > Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> wrote: > > > TCP pingpong threshold is 1 by default. But some applications, like SQL DB > > may prefer a higher pingpong threshold to activate delayed acks in quick > > ack mode for better performance. > > > > The pingpong threshold and related code were changed to 3 in the year > > 2019 in: > > commit 4a41f453bedf ("tcp: change pingpong threshold to 3") > > And reverted to 1 in the year 2022 in: > > commit 4d8f24eeedc5 ("Revert "tcp: change pingpong threshold to 3"") > > > > There is no single value that fits all applications. > > Add net.ipv4.tcp_pingpong_thresh sysctl tunable, so it can be tuned for > > optimal performance based on the application needs. > > > > Signed-off-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> > > If this an application specific optimization, it should be in a socket option > rather than system wide via sysctl. Initially I had a similar comment but later decided a sysctl could still be useful if 1) the entire host (e.g. virtual machine) is dedicated to that application 2) that application is difficult to change