Citrix ADC

负载平衡算法

负载平衡算法定义Citrix ADC设备用于选择要将每个客户端请求重定向到的服务的条件。不同的负载平衡算法使用不同的标准。例如,最少连接算法选择活动连接最少的服务,而循环算法则维护活动服务的正在运行的队列,将每个连接分配到队列中的下一个服务,然后将该服务发送到队列的末尾。

一些负载平衡算法最适合处理网站上的流量,另一些则适用于管理到DNS服务器的流量,另一些则适用于处理电子商务或公司局域网或广域网中使用的复杂Web应用程序。下表列出了Citrix ADC设备支持的每种负载平衡算法,并简要介绍了每种算法的工作方式。

名称 服务器选择基于
最少的联系 哪个服务当前具有最少的客户端连接。这是默认的负载平衡算法。
设置轮流捡取 哪项服务位于服务列表的顶部。为连接选择该服务后,它将移动到列表的底部。
反应最少 哪个负载平衡服务器目前具有最快的响应时间。
URLHASH 目标URL的哈希值。
DOMAINHASH 目标域的哈希值。
DESTINATIONIPHASH 目标IP地址的哈希值。
SOURCEIPHASH 源IP地址的哈希值。
SRCIPDESTIPHASH 源和目标IP地址的哈希值。
CALLIDHASH SIP标头中呼叫ID的哈希值。
SRCIPSRCPORTHASH 客户端IP地址和端口的哈希值。
LEASTBANDWIDTH 哪个服务当前带宽限制最少。
LEASTPACKETS 哪个服务当前接收的数据包最少。
CUSTOMLOAD 来自负载监视器的数据。
令牌 配置的令牌。
LRTM 活动连接最少,平均响应时间最短。

根据负载平衡的服务的协议,Citrix ADC设备将客户端和服务器之间的每个连接设置为持续不同的时间间隔。这称为负载平衡粒度,其中有三种类型:基于请求的粒度、基于连接的粒度和基于时间的粒度。下表描述了每种类型的粒度以及使用每种粒度的时间。

粒度 负载均衡服务类型 说明
基于请求 HTTP或HTTPS 为每个HTTP请求选择一个新的服务,独立于TCP连接。与所有HTTP请求一样,Web服务器满足请求后,连接将关闭。
基于连接的方式 HTTP以外的基于TCP和TCP的协议 为每个新的TCP连接选择一个服务。连接一直保持,直到服务或客户端终止。
基于时间的 UDP和其他IP协议 为每个UDP数据包选择一个新服务。选择服务后,将在服务和客户端之间创建一个指定时间段的会话。时间过期时,会删除会话并为任何其他数据包选择新服务,即使这些数据包来自同一客户端。

在虚拟服务器启动期间,或者每当虚拟服务器的状态发生变化时,虚拟服务器最初可以使用轮询方法在物理服务器之间分发客户端请求。这种类型的分发(称为启动轮询)有助于防止在处理初始请求时在单个服务器上出现不必要的负载。在启动时使用轮询方法后,虚拟服务器会切换到虚拟服务器上指定的负载平衡方法。

启动RR因子的工作方式如下:

  • 如果启动RR系数设置为零,则设备会根据请求速率切换到指定的负载平衡方法。
  • 如果启动RR因子是零以外的任何数字,则在切换到指定的负载平衡方法之前,设备对指定数量的请求使用循环方法。
  • 默认情况下,启动RR系数设置为零。

注意:您不能为单个虚拟服务器设置启动RR因子。您指定的值应用于Citrix ADC设备上的所有虚拟服务器。

使用CLI设置启动轮询系数

在命令提示符下,键入:

设置lb参数-startupRRFactor

示例

设置lb参数-startupRRFactor 25000

使用GUI设置启动轮询系数

  1. 导航到流量管理 > 负载平衡 > 配置负载平衡参数,然后设置启动RR因子。
负载平衡算法