Customer Experience Management (CXM), Information Management, Social Business
 
 
 

CMS on Linux, Notable Performance Gains

When making CMS purchasing decisions, the platform of choice can significantly impact the total solution cost. This comes in the form of both sw licensing costs for multiple servers and total cost of ownership. Of note here is the very significant performance gains realized with the recent Linux 2.6 kernel.

IBM staff engineers tested identical [Apache and J2EE] web servers in a controlled environment, simulating prolonged system load and multiple user interaction models. These were not CMS tests specifically, but were complex, multi-threaded, and data-driven applications, not unlike a CMS.

The short: comparing identical SMP systems, one with the 2.6 kernel and one with the 2.4 kernel, the 2.6 system served 6 times the number of web pages. This is a significant fact when considering platforms and production architectures for larger CMS solutions. Anything Java, ColdFusion, or PHP will run on Linux.


Linux webserver performance comparison

From the article, the recent improvements to the Linux kernel include:

New hardware support
Linux supports a wide range of hardware platforms. The 2.6 kernel supports new architectures, such as the 64-bit PowerPC, the 64-bit AMD Opteron, and embedded processors.

Hyper-threading
Hyper-threading, an innovation from Intel, is a major hardware enhancement supported by the 2.6 kernel. Basically, hyper-threading can create multiple virtual processors based on a single physical processor using simultaneous multi-threading technology (SMT); multiple application threads can be run simultaneously on one processor. To take full advantage of it, applications need to be multithreaded.

Hyper-threading offers many benefits to Web servers and application servers. It can increase the number of transactions that can be processed, provide faster server response time, and enable servers to handle larger workloads and more user requests. Currently, Intel Pentium 4 Xeon processors have hyper-threading hardware built-in.

NUMA (Non-Uniform Memory Access)
NUMA is another major feature that has been added in the Linux 2.6 kernel to improve system performance. In the traditional model for multiprocessor support (symmetric multiprocessing, or SMP), each processor has equal access to memory and I/O. The high contention rate of the processor bus becomes a performance bottleneck. The NUMA architecture can increase processor speed without increasing the load on the processor bus. In NUMA systems, each processor is close to some parts of memory and further from others. Processors are arranged in smaller regions called nodes. Each node has its own processors and memory; the nodes can talk to each other. It is quicker for processors to gain access to memory in a local node than in different nodes. Minimizing the inter-node communications can improve the system performance.

To support NUMA hardware, the Linux kernel adapts a series of enhancements in several areas, including the scheduler, multi-path I/O, a user-level API to let a user understand the allocation of processor and memory resources to be used, and internal kernel APIs to let the kernel subsystems understand NUMA topology. NEC Azusa, IBM x440, and IBM NUMA-Q are examples of NUMA machines.

Expanded device support
In the 2.6 kernel, more types of devices have been supported. The 2.6 kernel has also expanded the limitation of the major number from 255 to 4095 and has allowed more than one million subdevices per type. This should give high-end enterprise systems sufficient support.

Threading improvements
The 2.6 kernel adapts the new thread library, Native POSIX Thread Library (NPTL). This new library is based on a 1:1 model and full POSIX compliance. A test done by Red Hat indicates that on an old IA-32 dual 450MHz PII Xeon system, 100,000 threads could be created and destroyed in 2.3 seconds (with up to 50 threads running at any one time) using NPTL.

NPTL gives the kernel a major performance boost for multi-threading applications in an SMP environment. It is especially valuable for heavily multi-threaded enterprise level application, such as Java® applications, as well as Web server and application server applications.

Another threading improvement in the 2.6 kernel is that the number of PIDs that can be allocated has increased from 32,000 to 1 billion. The threading change improves the application-starting performance on heavily loaded systems. The 2.4 kernel sometimes suffers with higher numbers of PIDs requested by applications due to the low PID limit it allows.

 

Continue reading this article:

 
 
Useful article?
  Email It      

Related Articles:
 
 
 

Featured Events  View all | Add event | feed RSS

Who's Hiring?  View all | Post a job | feed RSS


 
Are you hiring?    Post your job today ($45 for 45 days)!