Inter continent data transfer's speed is maximum 2MB/s.
I checked and the SSH server of my server doesn't even use window scaling, and the window itself is very small, around 22KB...
Flags [S], seq 1433200120, win 29200, options [mss 1420,sackOK,TS val 1451891061 ecr 0,nop,wscale 7], length 0 Flags [S.], seq 3549718494, ack 1433200121, win 65535, options [mss 1460,sackOK,TS val 4214039974 ecr 1451891061,nop,wscale 9], length 0
Server is 65535*9=590 KB
Window scaling is enabled.
$ cat /proc/sys/net/ipv4/tcp_window_scaling 1
And I've already increase all the parameters to 25MB and 16MB minimum an default in /etc/sysctl.conf
:
net.core.wmem_max=25165824 net.core.rmem_max=25165824 net.ipv4.tcp_rmem = 16777216 16777216 25165824 net.ipv4.tcp_wmem = 16777216 16777216 25165824
I'm using Fedora 39 and RHEL 8, what can I do to force the SSH server to handle much more inflight data?
scp
a file (10s of MB will do) and capture the whole session to a pcap. open that in Wireshark and you can Statistic -> TCP Stream Graphs -> Window Scaling. Would be interesting to see how (if) the window changes over time. If you get a sawtooth pattern, something is causing your client to back off.