Summary: | Very low throughput mellanox arm64 Azure | ||
---|---|---|---|
Product: | Base System | Reporter: | schakrabarti <schakrabarti> |
Component: | kern | Assignee: | freebsd-net (Nobody) <net> |
Status: | Closed FIXED | ||
Severity: | Affects Some People | CC: | emaste, kevans |
Priority: | --- | Keywords: | performance |
Version: | CURRENT | ||
Hardware: | arm64 | ||
OS: | Any |
Description
schakrabarti@microsoft.com
2023-07-12 05:15:18 UTC
*** Bug 272462 has been marked as a duplicate of this bug. *** # nuttcp -r 10.0.0.6 11183.5827 MB / 10.00 sec = 9377.7762 Mbps 12 %TX 99 %RX 0 retrans 0.94 msRTT # nuttcp -t 10.0.0.6 7382.5625 MB / 10.01 sec = 6189.0401 Mbps 88 %TX 23 %RX 1272 host-retrans 1.09 msRTT # nuttcp -t 10.0.0.6 7165.5625 MB / 10.01 sec = 6007.3615 Mbps 95 %TX 22 %RX 932 host-retrans 1.24 msRTT # nuttcp -t 10.0.0.6 7328.3125 MB / 10.01 sec = 6143.3396 Mbps 97 %TX 23 %RX 1128 host-retrans 0.89 msRTT # nuttcp -r 10.0.0.6 11282.3515 MB / 10.00 sec = 9461.1586 Mbps 12 %TX 99 %RX 0 retrans 1.07 msRTT # ifconfig lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384 options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6> inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 groups: lo nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> hn0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500 options=0 ether 60:45:bd:c7:5b:6a inet 10.0.0.4 netmask 0xffffff00 broadcast 10.0.0.255 media: Ethernet 100GBase-CR4 <full-duplex,rxpause,txpause> status: active nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> mce0: flags=1008a43<UP,BROADCAST,RUNNING,ALLMULTI,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500 options=18a05ab<RXCSUM,TXCSUM,VLAN_MTU,JUMBO_MTU,VLAN_HWCSUM,TSO4,LRO,NV,LINKSTATE,HWSTATS,TXRTLMT> ether 60:45:bd:c7:5b:6a media: Ethernet 100GBase-CR4 <full-duplex,rxpause,txpause> status: active nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> # uname -a FreeBSD lisa--523-e0-n0 14.0-CURRENT FreeBSD 14.0-CURRENT #0 main-n263986-4631191c8a5f: Fri Jul 14 09:03:58 UTC 2023 root@fbsd13-nvme-test:/data/ws/obj/data/ws/main/arm64.aarch64/sys/GENERIC-NODEBUG arm64 # The nuttcp server was running on Ubuntu X86 on same subnet in Azure. Some more data points: From Linux Ubuntu x86 system running nuttcp -t -T 5 -w 128 -v localhost: The speed is 32Gbps root@ubuntu2004:/home/lisatest# nuttcp -t -T 5 -w 128 -v localhost nuttcp-t: v6.1.2: socket nuttcp-t: buflen=65536, nstream=1, port=5001 tcp -> localhost nuttcp-t: time limit = 5.00 seconds nuttcp-t: connect to 127.0.0.1 with mss=32767, RTT=0.074 ms nuttcp-t: send window size = 262144, receive window size = 131072 nuttcp-t: available send window = 131072, available receive window = 65536 nuttcp-t: 19626.5625 MB in 5.00 real seconds = 4019455.69 KB/sec = 32927.3810 Mbps nuttcp-t: retrans = 0 nuttcp-t: 314025 I/O calls, msec/call = 0.02, calls/sec = 62804.00 nuttcp-t: 0.0user 4.9sys 0:05real 99% 0i+0d 926maxrss 0+24pf 109+168csw nuttcp-r: v6.1.2: socket nuttcp-r: buflen=65536, nstream=1, port=5001 tcp nuttcp-r: accept from 127.0.0.1 nuttcp-r: send window size = 2626560, receive window size = 262144 nuttcp-r: available send window = 1313280, available receive window = 131072 nuttcp-r: 19626.5625 MB in 5.00 real seconds = 4019583.51 KB/sec = 32928.4281 Mbps nuttcp-r: 318597 I/O calls, msec/call = 0.02, calls/sec = 63720.41 nuttcp-r: 0.0user 2.3sys 0:05real 49% 0i+0d 92maxrss 0+18pf 308774+48csw root@ubuntu2004:/home/lisatest# Now FreeBSD ARM64: 32Gbps # nuttcp -t -T 5 -w 128 -v localhost nuttcp-t: v8.2.2: socket nuttcp-t: buflen=65536, nstream=1, port=5101 tcp -> localhost nuttcp-t: time limit = 5.00 seconds nuttcp-t: connect to 127.0.0.1 with mss=16344, RTT=0.051 ms af=inet nuttcp-t: send window size = 147096, receive window size = 81720 nuttcp-t: 18235.1250 MB in 5.02 real seconds = 3720201.81 KB/sec = 30475.8932 Mbps nuttcp-t: host-retrans = 0 nuttcp-t: 291762 I/O calls, msec/call = 0.02, calls/sec = 58128.15 nuttcp-t: 0.0user 4.7sys 0:05real 94% 106i+202d 1200maxrss 0+2pf 18597+0csw nuttcp-r: v8.2.2: socket nuttcp-r: buflen=65536, nstream=1, port=5101 tcp nuttcp-r: accept from 127.0.0.1 with af=inet nuttcp-r: send window size = 49032, receive window size = 147096 nuttcp-r: 18235.1250 MB in 5.02 real seconds = 3717070.73 KB/sec = 30450.2434 Mbps nuttcp-r: 332594 I/O calls, msec/call = 0.02, calls/sec = 66207.40 nuttcp-r: 0.0user 4.6sys 0:05real 92% 104i+198d 1172maxrss 0+18pf 32651+0csw # If we are running iperf3 with multiple server bound to multiple ports and connecting multiple iperf3 client, then we are getting the similar throughput that of Linux. So there is no issue from mlx or hyper-v here. Similar behavior was reported earlier here https://forums.freebsd.org/threads/poor-performance-with-stable-13-and-mellanox-connectx-6-mlx5.85460/ |