4285ch01.fm Draft Document for Review May 4, 2007 11:35 am
10 Linux Performance and Tuning Guidelines
Figure 1-8 Linux kernel 2.6 O(1) scheduler
Another significant advantage of the new scheduler is the support for Non-Uniform Memory
Architecture (NUMA) and symmetric multithreading processors, such as Intel®
Hyper-Threading technology.
The improved NUMA support ensures that load balancing will not occur across NUMA nodes
unless a node gets overburdened. This mechanism ensures that traffic over the comparatively
slow scalability links in a NUMA system are minimized. Although load balancing across
processors in a scheduler domain group will be load balanced with every scheduler tick,
workload across scheduler domains will only occur if that node is overloaded and asks for
load balancing.
Figure 1-9 Architecture of the O(1) CPU scheduler on an 8-way NUMA based system with
Hyper-Threading enabled
priority0
:
priority 139
priority0
:
priority 139
PPP P
activeexpiredarray[0]array[1] PP:
:
PP P
priority0
:
priority 139
priority0
:
priority 139
PPP P
activeexpiredarray[0]array[1] PP:
:
PP P
Two node xSeries 445 (8 CPU)
One CEC (4 CPU)
One Xeon MP (HT)
One HT CPU
ParentScheduler
Domain
ChildScheduler
Domain
Scheduler
Domain
GroupLogicalCPULoad balancing
only if a child
is overburdened
Load balancing
via scheduler_tick()
and time slice
Load balancing
via scheduler_tick()
1
2
3
…
1
2
3
…
1
2
3
…
1
2
…
1
2
…
1
2
…
1
2
…
1
2
…
1
2
…