Performance & Scalability


Even if you aren't doing virtualization or clustering, Linux 3.0's overall performance is significantly improved for many workloads. This is due in part to many rewrites across the board, but in particular due to improvements in processor scalability and an overhaul of the way that Linux delegates tasks.



Linux since 2.0 has been a multi-processor OS, but has retained some legacy “features” which revealed its roots as a single-processor system. One major obstacle to scalability was the “big kernel lock” or “BKL”. This feature permitted kernel developers to block all of the processors in the system so that one of them could do a particular important task without risk of another stepping on its toes. As the number of processors in systems have grown, this has moved from being a minor inconvenience to a major performance bottleneck. Over the last several revisions, Linux has been rewritten one subsystem at a time to use finer-grained locks so that the necessity to block everything is minimized. Linux 3.0 finally completes this work: the BKL is dead. While this isn't the only obstacle to scalability, it is a major step. Other improvements within Linux 3.0 has doubled the maximum number of supported processors to 512.



Another way that Linux 3.0 has improved performance is with adjustments to the scheduler. The scheduler is the component of Linux that decides what processes on a system get how much cpu time. For example, if you are a programmer you may want to ensure that your web browser or email client does not run too slowly if you have a large compilation going on in the background. The scheduler needs to decide which task is most important and plan accordingly. The old scheduler was consistently fair, but different users have different needs. Not only does Linux 3.0 have a more robust default scheduler, it also permits an administrator to change the scheduler to better reflect his or her needs. No longer do users of desktop Linux have to use a scheduler for servers or vice-versa. This scheduler has been improved in other ways, as well. Linux now does a better job of understanding multi-core and hyperthreaded processors, technologies that allow a single physical processor to behave as two or more, and will delegate tasks evenly across the real processors. The scheduler will also do a better job of grouping and tuning related tasks together. This results in an overall smoother feel, especially for desktop users.


In terms of scalability, Linux 3.0 is designed with many features for the high-end in mind, but a few in specific are worthy of note for enterprise computing. Although you might not consider it a performance feature, the new kernel has reduced the time it takes to boot on complex hardware by supporting asynchronous scans of storage and other devices. On servers with many attached drives and shelves, this results in a significant reduction in downtime between reboots. Linux 3.0 also improves on previous versions' support for hardware monitoring chipsets for fault recognition, temperature management, and similar. This grants server administrators more visibility into their gear and can help prevent crashes.


Continue on to Security...