The second major Linux kernel release of 2011 is now available, offering open source users enhanced performance over its predecessors.
The Linux 2.6.38 kernel goes a step beyond what Linux developers provided in the 2.6.37 kernel released earlier this year, by eliminating the last main global lock, which further unlocks Linux performance.
“There are many performance enhancements that went into 2.6.38, Transparent Hugepages is one of those noticeable features,” Tim Burke, vice president of Linux Engineering at Red Hat told InternetNews.com. “To give you a better idea of how important Red Hat considers transparent hugepages, Red Hat led the initial upstream implementation in the timeframe to include in Red Hat Enterprise Linux 6. We continue to evolve the types of memory use cases to be fully covered by transparent hugepages.”
With Transparent Huge Pages (THP), memory allocations for processor use grow from 4 KB in size to 2 MB. Burke explained that THP reduces the number of memory allocations and leverages higher performance hardware.
“The impact of the inclusion of the Transparent Huge Pages (THP) in 2.6.38 is that it will offer improved performance on workloads that requires large amount of memory, such as JVM and database servers,” Burke said.
Burke noted that one of the main beneficiaries of THP is virtualization.
“Consider that virt guests inherently can consume large amounts of memory,” Burke said. “Using THP improves the efficiency of virt guests.”
James Bottomley, distinguished engineer at Novell told InternetNews.com that in his view the improvement for THP is largely on the API side.
“We already had hugepage support via hugetlbfs, however, the API was so cumbersome that only Oracle could really work out how to use it,” Bottomley said. “The improvement THP makes is that the API is far simpler.”
Bottomley added that the hope is that building on THP, kernel developers can make hugepage support completely transparent and thus every process in the system would be able to make use of it without ever knowing it had happened.
Red Hat’s Burke noted that the 2.6.38 kernel also provides the Transmit Packet Steering (XPS). He explained that XPS on the networking side will also provide some performance improvement in packet transmission by using multi-queue cards in an multicore environment.
“The feature allows network queues to be associated with processor cores, which improves processor cache efficiency, hence improving data throughput,” Burke said. “This type of change is necessitated in modern CPU architectures where multicore systems can be assumed to be the default. In such configurations it is increasingly important to increase parallelism.”
Another key improvement in 2.6.38 comes by way of a new RCU (Read/Copy/Update)-based path name lookup.
“This patch series was both controversial and experimental when it went in, but we’re very hopeful of seeing speedups,” Novell’s Bottomley said. “Just to set expectations correctly, the dcache/path lookup improvements really only impact workloads with large metadata modifications, so the big iron workloads (like databases) will likely see no change. However, stuff that critically involves metadata, like running a mail server (the postmark benchmark) should improve quite a bit.”
Process scheduling also gets a boost in 2.6.38 with automatic process grouping, which should further improve Linux system performance and scalability
“This feature allows the creation of hundreds of ‘cpu’ control groups on a system with large number of CPUs in short period of time,” Burke said. “Scalability of control groups is increasingly important due to multi-tenancy configurations using KVM virtualization.”