This month saw another release of the Linux kernel, and it brought with it a number of new features and improvements that are likely to be of interest to web hosts and others who depend on their Linux server’s performance.
Shared hosts and hosts running virtualized servers often find themselves in a position where swapping causes a performance bottleneck; reading from the disk to swap pages back in is time consuming and can lead to laggy performance. ZSwap takes pages that are in the process of being swapped out to the hard drive and instead compresses and caches them in a dynamically allocated memory pool. The pages in memory are much more quickly available for paging back in.
The compression process does use up extra CPU cycles compared to swapping to disk, but in situations where there is ample free processor time, ZSwap can result in significant performance improvements.
Low Latency Network Polling
In order to avoid the generation of many thousands of interrupts per second, which would cause performance degradation, most Linux device drivers use a periodic polling method. For most purposes, that’s more than adequate, but for some applications that require very low latency, high speed trading, for example, periodic polling introduces an unacceptable latency.
The 3.11 kernel allows applications to request a low-latency polling interval, which will significantly reduce the latency of a socket.
ARM Huge Page Support, KVM And Xen Support For ARM64
ARM is becoming gradually more popular in the data center, especially in the form of clustered low-cost SOC devices. 3.11 sees improvements for virtualization support of ARM64 devices, but more interesting from the performance point of view is the addition of huge page support for 32-bit and 64-bit ARM devices. Huge page support allows the use of large contiguous blocks of memory by the virtual memory system. Previously, Linux only supported much smaller pages for ARM processors, which leads to a lot of memory overhead for page table entries and excessive processor time spent on creating and maintaining the PTEs.
Experimental Support For The Lustre Filesystem
Lustre is a high-performance distributed parallel filesytem that is capable of being scaled to tens of thousands of nodes. It’s worth noting that Lustre support is still highly experimental, but for companies that require massively distributed data pools, it might be worth a look for future implementation.
If you want to see all of the changes brought by this release, check out the Kernel Newbies page. Providing Linus doesn’t have any more hardware failures, we’ll be highlighting features of interest to the web hosting industry in the upcoming kernal 3.12 release, so watch this space.