Date: Tue, 16 Mar 2021 15:18:33 +0100 From: Marek Zarychta <zarychtam@plan-b.pwste.edu.pl> To: tuexen@freebsd.org, 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: <d71bd76f-d01a-0af7-9b02-c3a473de5ef9@plan-b.pwste.edu.pl> In-Reply-To: <2808496E-C2B5-4B6F-8FDB-310B7F69E540@freebsd.org> References: <5753280.1HxCrU2fYu@thinkbook> <E1346D9D-F1E0-4ABC-89D6-33BC77705771@freebsd.org> <10847992.4GmZMkJedg@thinkbook> <2808496E-C2B5-4B6F-8FDB-310B7F69E540@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --aGGnVIZwMR5UCA0W97ECtZo5jud9vtNg4 Content-Type: multipart/mixed; boundary="J4fBDqdWX9uGzCu8zZ3iITrbO2Uz1hLcV"; protected-headers="v1" From: Marek Zarychta <zarychtam@plan-b.pwste.edu.pl> To: tuexen@freebsd.org, Blake Hartshorn <contact@blakehartshorn.com> Cc: freebsd-net@freebsd.org Message-ID: <d71bd76f-d01a-0af7-9b02-c3a473de5ef9@plan-b.pwste.edu.pl> Subject: Re: Severe IPv6 TCP transfer issues on 13.0-RC1 and RC2 References: <5753280.1HxCrU2fYu@thinkbook> <E1346D9D-F1E0-4ABC-89D6-33BC77705771@freebsd.org> <10847992.4GmZMkJedg@thinkbook> <2808496E-C2B5-4B6F-8FDB-310B7F69E540@freebsd.org> In-Reply-To: <2808496E-C2B5-4B6F-8FDB-310B7F69E540@freebsd.org> --J4fBDqdWX9uGzCu8zZ3iITrbO2Uz1hLcV Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable W dniu 16.03.2021 o=C2=A012:50, tuexen@freebsd.org pisze: >> On 16. Mar 2021, at 11:55, Blake Hartshorn <contact@blakehartshorn.com= > wrote: >> >> Hi Michael, >> >> I've attached tcpdumps for port 80 on both sides of a bad transfer, us= ing 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 crawli= ng 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 MT= U > to the NIC. These are dropped and needs to be retransmitted. That is wh= y > it takes so long. So I guess TSO is enabled on the NIC and not working = correctly. >=20 > What is the output of ifconfig? Can you disable TSO? Does that work aro= und > the problem? >=20 > Best regards > Michael >> >> 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 >> ----------------------------------------------------------------------= ------------------------------------- >> >> >> 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 >> >> Taking a look at this iperf output I recalled that 80% of my setups suffered from similar issue after transitioning from 1{1,2}-STABLE to 13-STABLE about a mounth ago. I have asked on IRC but nobody confirmed similar problems so I have reduced MTU to 8900 from the original 9000 on some vlan(4) interfaces to solve the issue. I am using mostly vlan(4)s over LACP lagg(4)s created on NICs. So far (for FreeBSD 11 and 12) setting MTU 9000 on physical NIC was sufficient to make it work, now I have set MTU 9000 on NICs and reduced MTU 8900 on vlan(4)s. >> >> >> 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.c= om> wrote: >>>> >>>> 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, n= either had the problem. >>>> >>>> Did some troubleshooting with Linode, have ultimately ruled the netw= ork itself out at this point. When the server is on FreeBSD 13, it can do= wnload quickly over IPv6, but not deliver. Started investigating after no= ticing my SSH session was lagging when cat'ing large files or running bui= lds. This problem even occurs between VMs in the same datacenter. I gener= ated a 1MB file of base64 garbage served by nginx for testing. IPv6 is be= ing configured by SLAAC and on both 12 and 13 installs was setup by the i= nstaller. Linode uses Linux/KVM hosts for their virtual machines so it's = running on that virtual adapter. >>>> >>>> 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 de= tails. 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, u= se your 1MB >>> base64 garbage transfer. >>> >>> Best regardes >>> Michael >>>> >>>> >>>> _______________________________________________ >>>> freebsd-net@freebsd.org mailing list >>>> https://lists.freebsd.org/mailman/listinfo/freebsd-net >>>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.or= g" >>> >>> >> <freebsd12-client.pcap.gz><freebsd13-server.pcap.gz> >=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 Marek Zarychta --J4fBDqdWX9uGzCu8zZ3iITrbO2Uz1hLcV-- --aGGnVIZwMR5UCA0W97ECtZo5jud9vtNg4 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsB5BAABCAAjFiEEMOqvKm6wKvS1/ZeCdZ/s//1SjSwFAmBQvjkFAwAAAAAACgkQdZ/s//1SjSxn 7wf+MhimjJ6ZtsEjkshNAz4ZRAqL5a3tMQHrRIuda9elIgVmXkbSloUqqlDt3jBNkj31pGKtBB9E GuLemV19r82w0X9jxiypS0WYk1fdXZDDrrXHcDI5VGfVUabGbwJ1z884gzpmXw6GZiI543YfvByO HJ5tjpKbuWHWreNlymiX4DjG/noFbB5GrvXODJY2chqB/RfWh93yfrjBsqQyUJHv/57g8paNjH4j WesZnAQPp8PF+FolAxMB/wRAJ6h2p2CGfuGhP0galVGvXJevsNw9GmcGwYosiizzlPmq6VZiHX8J LZDo/vAOTpUrs88JZpjAF4rjZLj1Q2kFXo64HqOGVA== =gutX -----END PGP SIGNATURE----- --aGGnVIZwMR5UCA0W97ECtZo5jud9vtNg4--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d71bd76f-d01a-0af7-9b02-c3a473de5ef9>