The server is on a Gbit link. ethtool confirms 1000 Mbps on the interface. And yet every SFTP transfer caps out somewhere around 800 KB/s. Not 80 MB/s — 800 kilobytes per second. Less than 1% of the theoretical capacity.
The problem isn't bandwidth. It's a stack of bad defaults: a congestion control algorithm designed for year-2000 networks, microscopically small NIC ring buffers, and application socket buffers sized for DSL lines. Here are the five tweaks that fixed it.
TCP BBR: replacing CUBIC
CUBIC has been Linux's default congestion control algorithm since 2006. It works by growing the congestion window ( cwnd ) until it detects a packet loss, then cutting it in half.…