Abstract
By default, the Linux network stack is not configured for high-speed large file transfer. The reason behind this is to merely save memory resources. We may tune the Linux network stack by increasing network buffers size for high-speed networks that connect server systems in order to handle more network packets. There are also several other TCP/IP parameters that can be tuned in an OS. In this thesis, the goal is to make a system which learns from the history of the network traffic and leverages this knowledge to optimize the current performance by adjusting the parameters. This can be done for a standard Linux kernel using sysctl or /proc. For a VM, virtually any type of OS can be installed and an image can swiftly be compiled and deployed. By being a sandboxed environment, risky configurations can be performed without the danger of harming the system. Different scenarios for network parameter configurations are thoroughly tested, and an increase of at least 65% throughput speed is achieved compared to the default configuration.