Skip to content

Instantly share code, notes, and snippets.

View roman-shuhov's full-sized avatar
🎯
Focusing

T3[rm]1T roman-shuhov

🎯
Focusing
  • Seattle
View GitHub Profile
@roman-shuhov
roman-shuhov / gist:428cdd881dba6890ba9c010704959ba4
Last active October 30, 2025 09:32
TCP vs MPTCP+0 vs MPTCP+1 with 1M window and "perf record"
## TCP
```
[ 5] 0.00-30.00 sec 174 GBytes 49.7 Gbits/sec 0 sender
```
```
41.44% iperf3 [kernel.kallsyms] [k] _copy_from_iter
13.57% iperf3 [kernel.kallsyms] [k] tcp_sendmsg
4.16% iperf3 [kernel.kallsyms] [k] _raw_spin_lock
3.95% iperf3 [kernel.kallsyms] [k] __alloc_pages_noprof
3.25% iperf3 [kernel.kallsyms] [k] mlx5e_txwqe_complete
@roman-shuhov
roman-shuhov / gist:be9eb36b2003acac3caa698b469378c0
Created October 30, 2025 09:24
MPTCP (1 subflow) + MTU 9000 iperf3 run with "fixed" window
==== WINDOW 128K
[ 5] 0.00-30.00 sec 26.1 GBytes 7.47 Gbits/sec 1 sender
[ 5] 0.00-30.00 sec 35.6 GBytes 10.2 Gbits/sec 7 sender
[ 5] 0.00-30.00 sec 35.7 GBytes 10.2 Gbits/sec 14 sender
[ 5] 0.00-30.00 sec 36.1 GBytes 10.3 Gbits/sec 10 sender
[ 5] 0.00-30.00 sec 20.6 GBytes 5.90 Gbits/sec 8 sender
==== WINDOW 256K
[ 5] 0.00-30.00 sec 67.2 GBytes 19.2 Gbits/sec 3 sender
[ 5] 0.00-30.00 sec 65.7 GBytes 18.8 Gbits/sec 0 sender
[ 5] 0.00-30.00 sec 64.6 GBytes 18.5 Gbits/sec 8 sender
@roman-shuhov
roman-shuhov / gist:9464370cc2d3fd1f4b9ba5323e803203
Created October 30, 2025 09:24
MPTCP (no subflow) + MTU 9000 iperf3 run with "fixed" window
==== WINDOW 512K
[ 5] 0.00-10.00 sec 34.2 GBytes 29.4 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 33.6 GBytes 28.9 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 34.0 GBytes 29.2 Gbits/sec 0 sender
==== WINDOW 1M
[ 5] 0.00-10.00 sec 52.0 GBytes 44.7 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 48.8 GBytes 41.9 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 51.7 GBytes 44.4 Gbits/sec 0 sender
==== WINDOW 2M
[ 5] 0.00-10.00 sec 54.6 GBytes 46.9 Gbits/sec 0 sender
@roman-shuhov
roman-shuhov / gist:87b469099b43560021692aebfb018828
Created October 30, 2025 09:23
TCP + MTU 9000 iperf3 run with "fixed" window
==== WINDOW 512K
[ 5] 0.00-10.00 sec 42.1 GBytes 36.2 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 40.9 GBytes 35.1 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 41.9 GBytes 36.0 Gbits/sec 0 sender
==== WINDOW 1M
[ 5] 0.00-10.00 sec 59.1 GBytes 50.7 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 61.0 GBytes 52.4 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 55.1 GBytes 47.3 Gbits/sec 0 sender
==== WINDOW 2M
[ 5] 0.00-10.00 sec 56.9 GBytes 48.9 Gbits/sec 0 sender
@roman-shuhov
roman-shuhov / gist:049325ba76d4fbcc019d1b5083f411f1
Created October 30, 2025 09:21
MPTCP (1 subflow) iperf3 run with "fixed" window
==== WINDOW 512K
[ 5] 0.00-10.00 sec 37.0 GBytes 31.8 Gbits/sec 23 sender
[ 5] 0.00-10.00 sec 37.2 GBytes 32.0 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 37.4 GBytes 32.1 Gbits/sec 47 sender
==== WINDOW 1M
[ 5] 0.00-10.00 sec 47.7 GBytes 41.0 Gbits/sec 2 sender
[ 5] 0.00-10.00 sec 46.0 GBytes 39.5 Gbits/sec 164 sender
[ 5] 0.00-10.00 sec 46.5 GBytes 40.0 Gbits/sec 67 sender
==== WINDOW 2M
[ 5] 0.00-10.00 sec 49.3 GBytes 42.3 Gbits/sec 0 sender
@roman-shuhov
roman-shuhov / gist:d168bcffddcd37f24197093af2323587
Created October 30, 2025 09:20
MPTCP (no subflows) iperf3 run with "fixed" window
==== WINDOW 128K
[ 5] 0.00-30.00 sec 38.5 GBytes 11.0 Gbits/sec 7 sender
[ 5] 0.00-30.00 sec 38.5 GBytes 11.0 Gbits/sec 19 sender
[ 5] 0.00-30.00 sec 37.9 GBytes 10.8 Gbits/sec 11 sender
[ 5] 0.00-30.00 sec 38.2 GBytes 10.9 Gbits/sec 9 sender
[ 5] 0.00-30.00 sec 39.0 GBytes 11.2 Gbits/sec 5 sender
==== WINDOW 256K
[ 5] 0.00-30.00 sec 76.9 GBytes 22.0 Gbits/sec 0 sender
[ 5] 0.00-30.00 sec 71.7 GBytes 20.5 Gbits/sec 0 sender
[ 5] 0.00-30.00 sec 70.2 GBytes 20.1 Gbits/sec 20 sender
@roman-shuhov
roman-shuhov / gist:b92576c5eaa035b845194ff100f57f1d
Created October 30, 2025 09:20
TCP iperf3 run with "fixed" window
==== WINDOW 128K
[ 5] 0.00-30.00 sec 51.5 GBytes 14.7 Gbits/sec 0 sender
[ 5] 0.00-30.00 sec 54.1 GBytes 15.5 Gbits/sec 0 sender
[ 5] 0.00-30.00 sec 54.3 GBytes 15.5 Gbits/sec 0 sender
[ 5] 0.00-30.00 sec 54.5 GBytes 15.6 Gbits/sec 0 sender
[ 5] 0.00-30.00 sec 53.8 GBytes 15.4 Gbits/sec 0 sender
==== WINDOW 256K
[ 5] 0.00-30.00 sec 84.7 GBytes 24.3 Gbits/sec 0 sender
[ 5] 0.00-30.00 sec 86.4 GBytes 24.7 Gbits/sec 0 sender
[ 5] 0.00-30.00 sec 86.0 GBytes 24.6 Gbits/sec 0 sender
@roman-shuhov
roman-shuhov / gist:9f7102d8690e1195feefdb05a0631cb5
Created October 18, 2025 09:17
iperf3 run with MPTCP (no subflows) over 100Gb/s NIC
[server] > nstat > /dev/null; perf record <iperf-command>; nstat Tcp* MpTcp*
#kernel
TcpActiveOpens 149 0.0
TcpPassiveOpens 149 0.0
TcpEstabResets 116 0.0
TcpInSegs 405086 0.0
TcpOutSegs 22410228 0.0
TcpRetransSegs 29 0.0
TcpOutRsts 116 0.0
TcpExtTW 35 0.0
@roman-shuhov
roman-shuhov / gist:5ddcd85379009bc0a282e4bd47fdbd89
Created October 18, 2025 09:17
iperf3 run with TCP over 100Gb/s NIC
[server] > nstat > /dev/null; perf record <iperf-command>; nstat Tcp*
#kernel
TcpActiveOpens 159 0.0
TcpPassiveOpens 156 0.0
TcpAttemptFails 1 0.0
TcpEstabResets 134 0.0
TcpInSegs 327540 0.0
TcpOutSegs 38586627 0.0
TcpRetransSegs 2787 0.0
TcpOutRsts 137 0.0
## TCP case
### Server view
> nstat | grep Tcp
```
TcpActiveOpens 598 0.0
TcpPassiveOpens 567 0.0
TcpAttemptFails 20 0.0
TcpEstabResets 508 0.0