Linux集群之负载平衡原理和实现算法
2008-11-26 10:59:37 来源:WEB开发网核心提示: 负载平衡算法一个负载平衡算法都包含以下三个组成部分:信息策略:制定任务放置策略的制定者使用的负载和任务量,以及信息分配的方式,Linux集群之负载平衡原理和实现算法(2), 传送策略:基于任务和计算机负载,判断是否要把一个任务传送到其它计算机上处理,而且传送的是刚刚接收的任务,而进程迁移能
负载平衡算法
一个负载平衡算法都包含以下三个组成部分:
信息策略:制定任务放置策略的制定者使用的负载和任务量,以及信息分配的方式。
传送策略:基于任务和计算机负载,判断是否要把一个任务传送到其它计算机上处理。
放置策略:对于适合传送到其它计算机处理的任务,选择任务将被传送的目的计算机。
负载平衡的上述三个部分之间是以不同的方式相互作用的。放置策略利用信息策略提供的负载信息,仅当任务被传送策略判断为适于传送之后才行动。
总之,负载平衡的目标是:提供最短的平均任务响应时间;能适于变化的负载;是可靠的负载平衡机制。
信息策略
人们用来描述负载信息采用的参数有:
运行队列中的任务数;
系统调用的速率;
CPU上下文切换率;
空闲CPU时间百分比;
空闲存储器的大小(K字节);
1分钟内的平均负载。对于这些单个的负载描述参数,第(1)个,即采用运行队列中的任务数作为描述负载的参数被证明是最有效的,即它的平均任务响应时间最短,并且已经得到广泛应用。但是,如果为了使系统信息更全面而采集了更多的参数,则往往由于增加了额外开销,却得不到所希望的性能改善。例如,采用将六个参数中的某两个进行"AND"或"OR"组合,得到的平均响应时间反而比单个参数的平均响应时间还要差一些。
传送策略
为了简单起见,在选用传送策略时,多选用阀值策略。例如,Eager等人的方法是:在判断是否要在本地处理一个任务时,无需交换计算机之间的状态信息,一旦服务队列或等待服务队列的长度大于阀值时,就传送这个任务,而且传送的是刚刚接收的任务。而进程迁移能够迁移正在执行的任务,是对这种只能传送刚刚接收的任务的一种改进。
更多精彩
赞助商链接