I have a Solaris 11 system which has several NFS exports which are accessed my other systems within my LAN. I use a Linux system as a client for testing.I wrote a quick script to test read speed and I average at around 110Mbps (or 13MB/s) on a Gigabit LAN. And I would have think it could get much faster. SSH (scp) only gives me 3.8MB/s but that's with encryption.http gives me 11.5M/s, similar to NFS than. ain't this low?what could be the bottleneck from these numbers?
targeted network speed over LAN
linux;networking;solaris;zfs;file transfer
NFS can't really maximise the throughput, because the client keeps sending please send me this much data to the server (this much being limited to a few kilobytes) and waits for the full answer before asking for more which means dead times, when all queues are empty. All FS over the network (CIFS, SSHFS) have the same kind of issue (and IIRC scp as well, or maybe it's only sftp, I can't remember)Beside the encryption overhead, ssh also has some more performance limitations (see here for details).HTTP, unless you use a client that performs chunked requests, should be straight TCP, so shouldn't have this kind of limitation. TCP should use its congestion control algorithm to maximize the throughput while avoiding congestion. While the first few kilobytes may be transferred slowly, you should be able to maximize your bandwidth within a few 10th of seconds if the two machines are connected via the same switch. It's possible that there be some poor network quality (like the odd packet loss).Things you may want to try:Transfer the content of /dev/zero over a plain TCP connection (using socat or nc for instance), to rule out the bottle neck being FS access.Check your network interface statistics for transmission errors, and TCP stack statistics (netstat -s)Test with iperf (both TCP and UDP).