I'm frustrated by what appears to be openssh client/server performing at a maximum of ~ 1.03 gigabits/s, while iperf3 can sustain 7.03 gigabits/s easily over the same, point to point link.
- Forcing Nagle,
- using nc as an ssh ProxyCommand,
- [disabling compression](https://gist.github.com/KartikTalwar/4393116,
- forcing specific ciphers,
none of it has any effect;
- cpu load is under 70% (of 2400% total) on both boxes during the iperf test and ssh transport tests,
- no block devices are involved
I Just don't get it, is ssh simply incapable of 10gbe? Are the ciphers or hashing slowing me down? Did somebody hard code a gigabit limit in the openssl client source? Will I have to open 8+ independent ssh connections to throw data over this pipe at line speed?
AS seen below, the tiny tiny green blips are cat /dev/zero | ssh target 'cat >/dev/null'
; the purple/orange blob is iperf3 over ssh port forwarding, the tall blips are regular iperf3
Some Stats;
iperf3 over the dedicated link: 7.11Gbits/s
(I suspect mishandling by me of the fiber has reduced this from its original ~9Gbit performance new, se la vi)
iperf3 over dedicated link (mtu=9000): 7.55 Gbits/s
- iperf3 over the gbe lan: 941Mbits/s
- iperf3 over ssh over the direct link: 1.03 Gbits/s
iperf3 over ssh over gigabit lan: 941Mbits/s
(So clearly ssh is using the right route, and its still slightly faster than regular gbe to use)
iperf3 over ssh with ProxyCommand nc: 1.1Gbit/s
(another very very slim gain)
iperf3 over ssh with ProxyCommand nc (mtu=9000): 1.01Gbit/s
(mtu seems to have dergraded the link speed in this case)