ADC

负载平衡算法

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

一些负载平衡算法最适合处理网站流量,其他算法最适合管理发往 DNS 服务器的流量,而另一些则最适合处理电子商务或公司 LAN 或 WAN 上使用的复杂 Web 应用程序。下表列出了 NetScaler 设备支持的每种负载平衡算法,并简要描述了每种算法的工作原理。

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

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

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

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

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

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

注意:您无法为单个虚拟服务器设置启动 RR 因素。您指定的值适用于 NetScaler 设备上的所有虚拟服务器。

使用 CLI 设置启动循环因素

在命令提示符下,键入:

set lb parameter -startupRRFactor <positive_integer>

示例

set lb parameter -startupRRFactor 25000

使用 GUI 设置启动循环系数

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