Date: Wed, 1 Feb 2023 15:29:37 -0500 From: Paul Mather <paul@gromit.dlib.vt.edu> To: David <2yt@gmx.com> Cc: freebsd-stable@freebsd.org Subject: Re: Slow WAN traffic to FreeBSD hosts but not to Linux hosts---how to debug/fix? Message-ID: <31816EF8-7516-45F9-8584-A649F0011E3D@gromit.dlib.vt.edu> In-Reply-To: <f4f2dfa5-92fd-91be-8f7d-b4aa13683ac3@gmx.com> References: <95EDCFCA-7E3F-458F-85A6-856D606B9D98@gromit.dlib.vt.edu> <4ed8b724-041f-f561-ae60-ab966aefbb68@plan-b.pwste.edu.pl> <282AF730-E5E0-4A50-9F47-E7301B36E5C8@gromit.dlib.vt.edu> <2ed582b9-b544-74bb-2047-99d04924b46b@plan-b.pwste.edu.pl> <f4f2dfa5-92fd-91be-8f7d-b4aa13683ac3@gmx.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jan 31, 2023, at 9:46 PM, David <2yt@gmx.com> wrote: > On 1/31/23 13:38, Marek Zarychta wrote: >> W dniu 31.01.2023 o 19:31, Paul Mather pisze: >>>> While playing with different mod_cc(4) might bring some = improvement, to get a real boost I'd suggest enabling tcp_rack(4) if = feasible. >>>=20 >>> I am interested in trying this out, but believe it is more feasible = in my case for the -STABLE and -CURRENT systems I am using, not so much = for the -RELEASE systems that are kept up to date via binary = freebsd-update updates. My reading of the tcp_rack(4) man page is that = you have to build a custom kernel as, unlike the cc_* congestion control = algorithms, the loadable tcp_rack module is not built by default. Is = that an accurate reading? >>>=20 >> Yes, this gift from Netflix is probably better suited for -STABLE and = -CURRENT as easier to set up there. There is an excellent, up-to-date = article about it by Klara Systems writers[1]. =46rom my experience = tcp_rack(4) is well suited for congested, lossy or redundant network = paths where loses, duplicated packets or races between packets occur. = Not a panacea, but very performant TCP stack based on the _fair_ = algorithm. In some instances, it might help you to saturate the = bandwidth of the link. TCP algo can be loaded/unloaded/changed on the = fly. In FreeBSD 14-CURRENT you can change it on an active socket with = tcpsso(8) utility, in FreeBSD 12 and 13 you have to restart the app = bound to the socket. >> Please feel free to play with TCP stacks and congestion algos with = the help of benchmarks/iperf3 to find out what prevents the link from = being saturated and give us some feedback here. >> [1] = https://klarasystems.com/articles/using-the-freebsd-rack-tcp-stack/ >> Cheers >=20 > I compiled a custom kernel (releng/13.1) and followed Klara Systems = instructions. The results are quite good. I would hope the RACK stack = will be included in the upcoming 13.2 release as it is a significant = upgrade. I heartily concur with this. It would be very nice if the extra TCP = stacks were available and able to be loaded in the upcoming 13.2 = release. As I mentioned recently in this thread, I built and enabled the extra = TCP stacks on a -CURRENT system and got much better performance than = with the default "freebsd" stack. I've just done the same on a = 13-STABLE system and get the same result. Using the tcp_bbr stack = appears to solve the problem I was having. It would be great if the TCPHPTS and RATELIMIT options could be added to = the GENERIC kernel and WITH_EXTRA_TCP_STACKS default to enabled for = building in src.conf. That way, the tcp_rack and tcp_bbr modules would = get built by default and people would have the option of loading them on = -RELEASE systems without having to build their own kernel when doing = updates via freebsd-update. Cheers, Paul.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?31816EF8-7516-45F9-8584-A649F0011E3D>