SSH file transfer performance

The following table summarizes performance of SSH clients. 

  LAN: 1 Gbit/sec WAN: 6 Mb down, 0.9 Mb up
Solaris x86 server
Client Client OS Server Comp
Enable
File
Cmp
UL MB/s DL MB/s UL MB/s DL MB/s
libssh2 Win Solaris No No 0.147 12.2    
libssh2 Win Solaris Yes No        
libssh2 Linux Solaris No No 0.82 11.8    
libssh2 Linux Solaris Yes No        
libssh 0.4.6 async Win Solaris No No 0.29 12.2    
libssh 0.4.6 async Linux Solaris No No 2.3 11    
Bitvise Tunnelier Win Solaris No No 13.50 3.95    
Bitvise Tunnelier Win Solaris Yes No 8.541 10.2    
psftp Win Solaris No No 9.4 5.06 or 0.46    
WS_FTP 12.3 Win Solaris No No 8.07 7.65    
Ubuntu sftp Linux Solaris ? No 29.6 11.5    
Linux server
libssh2 Win Linux No No 22 (slid) 7.8 0.109 (slid) 0.26 or 0.15
libssh2 Win Linux Yes No        
libssh2 Linux Linux No No 19 (slid) 7.4 0.109 (slid) 0.282
libssh 0.4.6 sync Win Linux No No 15.4 2.8 0.10 0.13
libssh 0.4.6 sync Linux Linux No No 8.97 2.8 0.099 0.189
libssh 0.4.6 async Win Linux No No   8.5 0.094 0.42
libssh 0.4.6 async Linux Linux No No   9.0 0.088 0.338
libssh latest sync Win Linux No No   1.4    
libssh latest async Win Linux No No   9.2    
libssh 0.4.6 sync Linux Linux Yes Yes 19.7 3.3    
psftp Win Linux No No 4.59 6.58 0.070 0.10
WS_FTP 12.3 Win Linux No No 23.0 8.5 0.113 0.361
Bitvise Tunnelier Win Linux No No        
Ubuntu sftp Linux Linux No No 16.2 6.6 0.11 0.51

I don't know why the Solaris SSH server is so much worse than the standard Ubuntu OpenSSH server in certain cases.

libssh has an asynchronous API that greatly improves performance, but it applies only to downloads.

libssh2 upload results have recently improved due to use of larger buffers and a more sophisticated sliding window scheme in the test program. Not all results above reflect the new code; those that are are marked (slid).

Mark Riordan   2010-12-07