FSS and Processor Sets
The FSS can be used in conjunction with processor sets to provide more
fine-grained controls over allocations of CPU resources among projects that run on each
processor set than would be available with processor sets alone. The FSS scheduler
treats processor sets as entirely independent partitions, with each processor set controlled independently
with respect to CPU allocations.
The CPU allocations of projects running in one processor set are not affected
by the CPU shares or activity of projects running in another processor set
because the projects are not competing for the same resources. Projects only compete
with each other if they are running within the same processor set.
The number of shares allocated to a project is system wide. Regardless of
which processor set it is running on, each portion of a project
is given the same amount of shares.
When processor sets are used, project CPU allocations are calculated for active projects
that run within each processor set.
Project partitions that run on different processor sets might have different CPU allocations.
The CPU allocation for each project partition in a processor set depends only
on the allocations of other projects that run on the same processor
set.
The performance and availability of applications that run within the boundaries of their
processor sets are not affected by the introduction of new processor sets. The
applications are also not affected by changes that are made to the share
allocations of projects that run on other processor sets.
Empty processor sets (sets without processors in them) or processor sets without processes
bound to them do not have any impact on the FSS scheduler behavior.
FSS and Processor Sets Examples
Assume that a server with eight CPUs is running several CPU-bound applications in
projects A, B, and C. Project A is allocated one share, project B
is allocated two shares, and project C is allocated three shares.
Project A is running only on processor set 1. Project B is running
on processor sets 1 and 2. Project C is running on processor sets
1, 2, and 3. Assume that each project has enough processes to utilize
all available CPU power. Thus, there is always competition for CPU resources on
each processor set.
The total system-wide project CPU allocations on such a system are shown in
the following table.
Project |
Allocation |
Project A |
4% = (1/6 X 2/8)pset1 |
Project B |
28% = (2/6 X
2/8)pset1+ (2/5 * 4/8)pset2 |
Project C |
67% = (3/6 X 2/8)pset1+ (3/5 X 4/8)pset2+ (3/3
X 2/8)pset3 |
These percentages do not match the corresponding amounts of CPU shares that are
given to projects. However, within each processor set, the per-project CPU allocation ratios
are proportional to their respective shares.
On the same system without processor sets, the distribution of CPU resources would
be different, as shown in the following table.
Project |
Allocation |
Project A |
16.66% = (1/6) |
Project B |
33.33% =
(2/6) |
Project C |
50% = (3/6) |