Date: Tue, 16 Mar 2021 12:50:05 +0100 From: tuexen@freebsd.org To: Blake Hartshorn <contact@blakehartshorn.com> Cc: freebsd-net@freebsd.org Subject: Re: Severe IPv6 TCP transfer issues on 13.0-RC1 and RC2 Message-ID: <2808496E-C2B5-4B6F-8FDB-310B7F69E540@freebsd.org> In-Reply-To: <10847992.4GmZMkJedg@thinkbook> References: <5753280.1HxCrU2fYu@thinkbook> <E1346D9D-F1E0-4ABC-89D6-33BC77705771@freebsd.org> <10847992.4GmZMkJedg@thinkbook>
next in thread | previous in thread | raw e-mail | index | archive | help
> On 16. Mar 2021, at 11:55, Blake Hartshorn = <contact@blakehartshorn.com> wrote: >=20 > Hi Michael, >=20 > I've attached tcpdumps for port 80 on both sides of a bad transfer, = using 2 VMs in the same datacenter, FreeBSD 13 serving and 12 as a = client. A friend of mine suggested I also run some tests with iperf3, so = pasting those results below. You'll see it going fast in one direction = and crawling in the other on TCP. There's also some disparity on UDP.=20 The problem is that the server provides TCP segments larger than the MTU to the NIC. These are dropped and needs to be retransmitted. That is why it takes so long. So I guess TSO is enabled on the NIC and not working = correctly. What is the output of ifconfig? Can you disable TSO? Does that work = around the problem? Best regards Michael >=20 > TCP: > [ ID][Role] Interval Transfer Bitrate Retr Cwnd > [ 5][TX-C] 0.00-1.00 sec 27.7 MBytes 233 Mbits/sec 342 26.7 = KBytes =20 > [ 7][RX-C] 0.00-1.00 sec 4.18 KBytes 34.3 Kbits/sec = =20 > [ 5][TX-C] 1.00-2.00 sec 15.8 MBytes 132 Mbits/sec 249 52.0 = KBytes =20 > [ 7][RX-C] 1.00-2.00 sec 4.18 KBytes 34.3 Kbits/sec = =20 > [ 5][TX-C] 2.00-3.00 sec 13.7 MBytes 115 Mbits/sec 307 15.4 = KBytes =20 > [ 7][RX-C] 2.00-3.00 sec 4.18 KBytes 34.3 Kbits/sec = =20 > [ 5][TX-C] 3.00-4.00 sec 14.5 MBytes 121 Mbits/sec 260 22.4 = KBytes =20 > [ 7][RX-C] 3.00-4.00 sec 4.18 KBytes 34.3 Kbits/sec = =20 > [ 5][TX-C] 4.00-5.00 sec 14.3 MBytes 120 Mbits/sec 240 37.9 = KBytes =20 > [ 7][RX-C] 4.00-5.00 sec 5.58 KBytes 45.7 Kbits/sec = =20 > [ 5][TX-C] 5.00-6.00 sec 17.7 MBytes 149 Mbits/sec 363 15.4 = KBytes =20 > [ 7][RX-C] 5.00-6.00 sec 4.18 KBytes 34.3 Kbits/sec = =20 > [ 5][TX-C] 6.00-7.00 sec 14.8 MBytes 124 Mbits/sec 287 8.38 = KBytes =20 > [ 7][RX-C] 6.00-7.00 sec 5.58 KBytes 45.7 Kbits/sec = =20 > [ 5][TX-C] 7.00-8.00 sec 14.7 MBytes 123 Mbits/sec 293 28.1 = KBytes =20 > [ 7][RX-C] 7.00-8.00 sec 4.18 KBytes 34.3 Kbits/sec = =20 > [ 5][TX-C] 8.00-9.00 sec 11.9 MBytes 100 Mbits/sec 325 18.3 = KBytes =20 > [ 7][RX-C] 8.00-9.00 sec 4.18 KBytes 34.3 Kbits/sec = =20 > [ 5][TX-C] 9.00-10.00 sec 14.3 MBytes 120 Mbits/sec 315 39.3 = KBytes =20 > [ 7][RX-C] 9.00-10.00 sec 4.18 KBytes 34.3 Kbits/sec = =20 > - - - - - - - - - - - - - - - - - - - - - - - - - > [ ID][Role] Interval Transfer Bitrate Retr > [ 5][TX-C] 0.00-10.00 sec 159 MBytes 134 Mbits/sec 2981 = sender > [ 5][TX-C] 0.00-10.00 sec 159 MBytes 134 Mbits/sec = receiver > [ 7][RX-C] 0.00-10.00 sec 77.0 KBytes 63.1 Kbits/sec 65 = sender > [ 7][RX-C] 0.00-10.00 sec 44.6 KBytes 36.6 Kbits/sec = receiver > = --------------------------------------------------------------------------= --------------------------------- >=20 >=20 > UDP: > [ ID][Role] Interval Transfer Bitrate Jitter = Lost/Total Datagrams > [ 5][TX-C] 0.00-1.00 sec 81.6 MBytes 685 Mbits/sec = 67798 =20 > [ 7][RX-C] 0.00-1.00 sec 8.80 MBytes 73.8 Mbits/sec 0.255 ms = 54070/60475 (89%) =20 > [ 5][TX-C] 1.00-2.00 sec 72.7 MBytes 610 Mbits/sec = 64802 =20 > [ 7][RX-C] 1.00-2.00 sec 8.52 MBytes 71.5 Mbits/sec 0.154 ms = 68912/75116 (92%) =20 > [ 5][TX-C] 2.00-3.00 sec 73.7 MBytes 618 Mbits/sec = 64158 =20 > [ 7][RX-C] 2.00-3.00 sec 8.52 MBytes 71.5 Mbits/sec 0.276 ms = 67738/73945 (92%) =20 > [ 5][TX-C] 3.00-4.00 sec 76.6 MBytes 643 Mbits/sec = 63521 =20 > [ 7][RX-C] 3.00-4.00 sec 8.55 MBytes 71.8 Mbits/sec 0.160 ms = 68647/74874 (92%) =20 > [ 5][TX-C] 4.00-5.00 sec 76.1 MBytes 638 Mbits/sec = 64614 =20 > [ 7][RX-C] 4.00-5.00 sec 8.55 MBytes 71.7 Mbits/sec 0.461 ms = 67542/73767 (92%) =20 > [ 5][TX-C] 5.00-6.00 sec 75.9 MBytes 637 Mbits/sec = 64834 =20 > [ 7][RX-C] 5.00-6.00 sec 8.57 MBytes 71.9 Mbits/sec 0.297 ms = 71565/77806 (92%) =20 > [ 5][TX-C] 6.00-7.00 sec 73.0 MBytes 613 Mbits/sec = 63639 =20 > [ 7][RX-C] 6.00-7.00 sec 8.40 MBytes 70.5 Mbits/sec 0.199 ms = 69545/75663 (92%) =20 > [ 5][TX-C] 7.00-8.00 sec 74.6 MBytes 626 Mbits/sec = 65030 =20 > [ 7][RX-C] 7.00-8.00 sec 8.78 MBytes 73.6 Mbits/sec 0.254 ms = 67173/73566 (91%) =20 > [ 5][TX-C] 8.00-9.00 sec 75.0 MBytes 629 Mbits/sec = 64848 =20 > [ 7][RX-C] 8.00-9.00 sec 8.77 MBytes 73.5 Mbits/sec 0.298 ms = 70932/77315 (92%) =20 > [ 5][TX-C] 9.00-10.00 sec 74.5 MBytes 625 Mbits/sec = 64487 =20 > [ 7][RX-C] 9.00-10.00 sec 8.71 MBytes 73.1 Mbits/sec 0.185 ms = 68268/74612 (91%) =20 > - - - - - - - - - - - - - - - - - - - - - - - - - > [ ID][Role] Interval Transfer Bitrate Jitter = Lost/Total Datagrams > [ 5][TX-C] 0.00-10.00 sec 754 MBytes 632 Mbits/sec 0.000 ms = 0/647731 (0%) sender > [ 5][TX-C] 0.00-10.12 sec 105 MBytes 87.2 Mbits/sec 0.245 ms = 571090/647649 (88%) receiver > [ 7][RX-C] 0.00-10.00 sec 1009 MBytes 846 Mbits/sec 0.000 ms = 0/761013 (0%) sender > [ 7][RX-C] 0.00-10.12 sec 86.2 MBytes 71.4 Mbits/sec 0.185 ms = 674392/737139 (91%) receiver >=20 >=20 >=20 >=20 > On Tuesday, March 16, 2021 4:16:15 AM EDT tuexen@freebsd.org wrote: >>> On 15. Mar 2021, at 12:56, Blake Hartshorn = <contact@blakehartshorn.com> wrote: >>>=20 >>> The short version, when I use FreeBSD 13, delivering data can take 5 = minutes for 1MB over SSH or HTTP when using IPv6. This problem does not = happen with IPv4. I installed FreeBSD 12 and Linux on that same device, = neither had the problem. >>>=20 >>> Did some troubleshooting with Linode, have ultimately ruled the = network itself out at this point. When the server is on FreeBSD 13, it = can download quickly over IPv6, but not deliver. Started investigating = after noticing my SSH session was lagging when cat'ing large files or = running builds. This problem even occurs between VMs in the same = datacenter. I generated a 1MB file of base64 garbage served by nginx for = testing. IPv6 is being configured by SLAAC and on both 12 and 13 = installs was setup by the installer. Linode uses Linux/KVM hosts for = their virtual machines so it's running on that virtual adapter. >>>=20 >>> I asked on the forums, another user recommended going to the mailing = lists instead. Does anyone know if config settings need to be different = on 13? Did I maybe just find a real issue? I can provide any requested = details. Thanks! >> Could you prove a .pcap tracefile, one from the sender, one from the = recevier, of >> a TCP/IPv6 connection, which doesn't work as expected. For example, = use your 1MB >> base64 garbage transfer. >>=20 >> Best regardes >> Michael >>>=20 >>>=20 >>> _______________________________________________ >>> freebsd-net@freebsd.org mailing list >>> https://lists.freebsd.org/mailman/listinfo/freebsd-net >>> To unsubscribe, send any mail to = "freebsd-net-unsubscribe@freebsd.org" >>=20 >>=20 > <freebsd12-client.pcap.gz><freebsd13-server.pcap.gz>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2808496E-C2B5-4B6F-8FDB-310B7F69E540>