All load distribution policies consider a subset of system resources as a basis for load distribution. There are two main approaches that depend on the configuration of the physical distributed system:
Leland and Ott [LO86] have shown that processes usually fall into
four categories: CPU bound, IO bound, ordinary (both unbound) and the
extremely rare
CPU and IO bound. Devarakonda and
Iyer [DI89] confirmed these categories, and observed an additional
heavy memory use category.
These results imply that not only should the requirements of a process
be matched to host capabilities in a heterogeneous system, but
homogeneous systems may also benefit by controlling the mix of
CPU, memory and IO bound process types on any one host. In
particular, the processes already executing on an individual host
combine to produce a set of remaining resources that are not
homogeneous over all hosts in the system. So while each host has the
same initial capabilities, the remaining capacity is different. As a
simple example, consider the processes and their resource
requirements summarised in table
Table 3.1: Two CPU and two IO bound processes. Care needs to be taken
when scheduling these four processes to three hosts.
Thus it is not only bottlenecking of the CPU that is a potential source of system degradation, but bottlenecking of IO as well. This argument can be extended to other system resources that are in demand, such as the memory system.