转载自:http://zh.linuxvirtualserver.org/comment/reply/2434/101331
权重最少连接(WLC)
权重最少连接调度方法是联合最少连接方法并为每个服务器指定一个权重或排序来选择集群节点的(如果你没有指定方法,这将是默认的选择方法),这个方法是有意为集群中节点处理能力不一样的集群设计的。
Director通过计算每个集群节点总开销值确定新的入站请求分配给哪个集群节点,然后通过你给每个集群节点指定的权重值划分,最小WLC值的节点将为这个请求提供服务[15]。
如果所有集群节点的WLC值相同,第一个在列表中被发现的节点将被选中(我们将在后面三章对叫做IPVS表的列表进行详细的讨论)。
对Linux企业集群而言,WLC调度方法是一个很好的调度方法,因为在平衡企业负载方面做得相当出色。
最短预期延迟(SED)
SED是最近才添加将来的LVS调度方法,它在WLC方法基础上稍微做了一下改善,当集群节点在处理每个请求(大批量作业是这种请求最好的例子)时它使用TCP并保持活动状态。
SED是按照后面这样计算的:每个集群节点的总开销值是通过在活动连接数量值上加1得到的,然后通过你给每个集群节点指定的权重值来划分总开销值,最小SED值的节点将被选中。
关于SED调度方法有两个事情需要注意:
在判断每个集群节点的总开销值时不使用非活动连接数值。
在入站连接被分配后,它在活动连接数值基础上加1来预料总开销值
例如:假设你有两个节点,其中一个比另一个要快三倍(一个是1GHZ的处理器,另一个是3GHz的处理器[16]),因此,你决定将一个的权重值设为1,另一个设为3,假设集群已经启动并运行了一段时间,较慢的节点上有10个活动连接,较快的节点上有30个活动连接,当新的请求抵达时,Director必须决定请求分配给哪个节点,如果这个请求没有增加每个集群节点的活动连接数量,SED值应该按下面这样计算:
较慢的节点(1GHz处理器) 10个活动连接/权重 1=10
较快的节点(3GHz处理器) 30个活动连接/权重 3=10
因为SED值相同,Director会选择首先在集群节点的表中显示的节点,如果首先显示的是较慢的节点,新的请求也将分配给它,哪怕它很慢。
如果新的连接首先增加了活动连接的数量,计算方法应该这样:
较慢的节点(1GHz处理器) 11个活动连接/权重 1=11
较快的节点(3GHz处理器) 31个活动连接/权重 3=10.34
现在较快的节点SED值更小,因此它适合分配新的连接请求。
增加活动连接数值一方面是影响是集群节点可能处于空闲状态,即使多个请求被分配给另一个集群节点了,例如:让我们使用同样的两个集群节点,但是本次我们假设较慢的节点没有活动连接,较快的节点有1个活动连接,每个节点的SED计算方法如下(回想活动连接已经增加了1):
较慢的节点(1GHz处理器) 1个活动连接/权重 1=1
较快的节点(3GHz处理器) 2个活动连接/权重 3=0.67
--------------------------------------------------------