Performance Tuning for Linux Servers

If computers had a single program and a single processor, there would be no need for a scheduler to implement resource management policies. The program would run until completion, and then the machine would halt. Computers today, however, seldom run a single program and a single processor. More often, the "single program" is an operating system that provides a variety of system services, implements a number of resource management policies, and generally never runs to completion.

Linux is such an operating system. Although it can be used for some very specific purposes, a more typical situation is where Linux is managing multiple tasks, with each utilizing one or more processors. Ensuring that each task gets a fair slice of time on a processor is the job of a scheduler.

Included in this chapter is an examination of the policies and issues that arise in granting a level of fairness to a task, and a discussion of symmetric multiprocessing and NUMA architectures. A discussion of the Linux 2.6 scheduler and an examination of its tunable parts are also included here.

We'll begin our discussion with the less demanding scheduling for the single processor.

    Категории