Tuning CPU resources

Load balancing -- loadbalance

On multiprocessor systems, the default behavior of the scheduler is to run the highest priority jobs on each of the processors. For example, when a process is awakened after a disk transfer completes, the scheduler checks if any CPU is running a process with a lower priority. If so, the processor is instructed to reschedule and run the newly awakened process. This load balancing feature is also used when a process is taken off a CPU; it is possible that the process has a higher priority than one on another CPU.

If you change the value of loadbalance to 0, the scheduler no longer looks for lower priority processes on other CPUs. This reduces the probability that a process will be preempted. On a system that is performing a reasonable amount of I/O requests, this should reduce the number of context switches and interprocessor interrupts. This provides more processor cycles for executing user applications and should increase overall performance. Processors which are idle can still be selected so idle time is minimized. This adjustment is likely to improve performance where context switching frequency is high, or on database servers where user processes should not be disturbed once they are running. If the system is already spending a significant amount of time idle, it is unlikely that this adjustment will improve performance.

Next topic: Identifying CPU-bound systems
Previous topic: Controlling process preemption -- preemptive

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003