New Linux Kernel Borrows Google Packet Speeding Tech
Harnessing a pair of protocols developed by Google, the newly released version of Linux kernel should be able to speed network traffic throughput considerably.
The technique is one of a number of new features that come with the latest update of the open source operating system kernel, Linux version 2.6.35, which Linus Torvalds released on Sunday.
In addition the usual round of bug fixes and optimizations, the new version has a number of new features to make it more usable in today's bustling multicore, networked environments.
Chief among these new features is the inclusion of Google's Receive Packet Steering (RPS) and Receive Flow Steering (RFS). RPS spreads incoming packets out across all of the CPUs available on the machine, and RFS calculates which cores would be best suited for processing, given factors such as which applications will be using the network traffic, according to an explanation offered by the Kernel Newbies Web site.
The site cited a benchmark test showing how an eight-core Intel CPU-based server, with an Intel e1000e network adapter, doubled the number of networking-based transactions-per-second (tps) it could execute with RPS and RFS in place, from 104,000 tps (at about 30 percent CPU usage), to 303,000 tps (and 61 percent CPU usage).
The feature is a timely one, given the recent advances in network traffic protocols that allow for greater throughput. Ethernet vendors, for instance, are in the process of upgrading to the new standards for 40 Gigabit and 100 Gigabit Ethernet. "Network cards have improved the bandwidth to the point where it's hard for a single modern CPU to keep up," explained Kernel Newbies.
Other new features include a new form of memory compression, a front-end for a debugger supplied by SGI, the ability to manage multiple multicast route tables, and a new mode of the XFS file system that bundles logging tasks in order to cut down input/output traffic.
This new version of the Linux kernel comes less than the months after the release of the previous iteration, 2.6.34.