Transferring a single large file ( 1GB for example ) is not an accurate way to test available bandwidth over the Internet. This is due to the difference in latency between a private LAN and the Internet. Latency over a private LAN is generally much lower than latency over the Internet. The reason for this is that transferring a file only uses one TCP session and the stack will hit the max buffer waiting for Acknowledgment packats (ACKs).
This topic provides tips for tuning the network stack on a SmartMachine (SmartOS virtual machine).
SmartOS allows network TCP tuning that provides great balance for typical LAN usage. Tuning the network stack is a bit of an art though, as several factors may come into play like public internet latency, network stability, and the types of data you are transferring. If you are migrating large amounts of data to SmartOS, like databases or large files, you may want to temporarily tune your servers by way of increasing buffers. This can provide increased throughput performance during periods of large data transfer.
|You can read a technical summary on network buffer tuning for TCP here.|
To speed up large file transfer speeds, increase the buffer size of your TCP stack. The below example provides more RAM to each TCP session, speeding up the transfer of large files:
|This is very inefficient if you do not regularly transfer files of 100MB or larger. The side effect of using this approach is you will reduce overall performance of the system by impacting available RAM.|