Summary: | Large amount of TCP retransmission received at the tap side | ||
---|---|---|---|
Product: | passt | Reporter: | Nelson Palmer <passt> |
Component: | TCP | Assignee: | nobody |
Status: | CONFIRMED --- | ||
Severity: | quite bad | CC: | dgibson, sbrivio |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux |
Description
Nelson Palmer
2023-09-20 15:30:09 UTC
Hi Nelson, I'm really not sure if this is related at the moment, but I have a vague feeling that you might be hitting the same issue as https://bugs.passt.top/show_bug.cgi?id=74, for which we're still working on a solution. It seems to be very visible with recent kernels. Test (and workaround): sysctl -w net.core.rmem_max=$((16 * 1024 * 1024)) sysctl -w net.core.wmem_max=$((16 * 1024 * 1024)) if this helps (on the host, as root), let us know. And also if it doesn't. :) Hi Stefano, I've seen the bug you mentioned, and tried that value, and it does not help. Plus I have a sysctl config I kind of copy-paste around all the time as my server defaults, which already increased the memory limits. The full config for your reference: net.core.netdev_max_backlog = 262144 net.ipv4.tcp_max_syn_backlog = 8192 net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 net.ipv4.tcp_rmem = 4096 87380 33554432 net.ipv4.tcp_wmem = 4096 65536 33554432 net.ipv4.udp_rmem_min = 16384 net.ipv4.udp_wmem_min = 16384 net.ipv4.ip_no_pmtu_disc = 0 net.ipv4.tcp_mtu_probing = 1 net.ipv4.tcp_base_mss = 1024 net.ipv4.icmp_errors_use_inbound_ifaddr = 1 net.ipv4.icmp_ratelimit = 0 net.ipv6.icmp.ratelimit = 0 net.core.somaxconn = 8192 net.ipv4.tcp_abort_on_overflow = 0 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_max_tw_buckets = 4096 net.core.default_qdisc = fq_codel net.ipv4.tcp_congestion_control = bbr net.ipv4.tcp_notsent_lowat = 16384 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_keepalive_time = 120 net.ipv4.tcp_keepalive_intvl = 60 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_fastopen = 3 net.ipv4.tcp_syncookies = 0 net.ipv4.tcp_no_metrics_save = 1 net.ipv4.tcp_sack = 1 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_timestamps = 1 net.ipv4.tcp_rfc1337 = 1 net.ipv4.tcp_slow_start_after_idle = 0 net.ipv4.tcp_adv_win_scale = 1 net.ipv4.tcp_ecn = 1 net.ipv4.tcp_ecn_fallback = 1 net.ipv4.fib_multipath_hash_policy = 1 net.ipv4.fib_multipath_use_neigh = 1 net.ipv4.igmp_max_memberships = 512 net.ipv6.route.max_size = 2147483647 net.ipv4.ip_local_port_range = 1024 65001 BTW I have `-march=x86-64-v3` set in makepkg.conf; other flags are Arch Linux defaults. Not sure if it is related... Nelson, while fixing https://bugs.passt.top/show_bug.cgi?id=74 we solved another fundamental issue (https://passt.top/passt/commit/?id=a469fc393fa1dfadc7c51c2729550597ee171a8e) that might play a role here. Could you please retest with the current HEAD, or with the new version (2023_10_04.f851084-1) of the Arch Linux package (https://archlinux.org/packages/extra/x86_64/passt/)? Thanks. |