Citrix ADC

最小响应时间法

当负载平衡虚拟服务器配置为使用最短响应时间方法时,它会选择活动连接最少且平均响应时间最短的服务。只能为 HTTP 和安全套接字层 (SSL) 负载平衡虚拟服务器配置此方法。响应时间(也称为时间到第一个字节或 TTFB)是向服务发送请求数据包与从服务接收第一个响应数据包之间的时间间隔。Citrix ADC 设备使用响应代码 200 计算 TTFB。

以下示例显示虚拟服务器如何通过使用最短响应时间方法选择服务进行负载平衡。考虑以下三项服务:

  • Service-HTTP-1 正在处理三个活动事务,TTFB 是两秒钟。
  • Service-HTTP-2 正在处理七个活动事务,TTFB 是一秒钟。
  • Service-HTTP-3 不处理任何活动事务,TTFB 是两秒钟。

下图说明 Citrix ADC 设备如何使用最短响应时间方法转发连接。

图 1. 最短响应时间负载平衡方法的工作原理

最低响应时间机制

虚拟服务器通过将活动事务数乘以每个服务的 TTFB,然后选择结果最低的服务来选择服务。对于上面显示的示例,虚拟服务器按如下方式转发请求:

  • Service-HTTP-3 接收第一个请求,因为该服务不处理任何活动事务。
  • Service-HTTP-3 也接收第二和第三个请求,因为结果是三个服务中最低的。
  • Service-HTTP-1 接收第四个请求。由于 Service-HTTP-1 和 Service-HTTP-3 具有相同的结果,Citrix ADC 设备通过应用循环方法在它们之间进行选择。
  • Service-HTTP-3 接收第五个请求。
  • Service-HTTP-2 接收第六个请求,因为此时它的结果最低。
  • 由于 Service-HTTP-1、Service-HTTP-2 和 Service-HTTP-3 在此时都具有相同的结果,因此设备切换到循环方法,并继续使用该方法分发连接。

下表说明了如何在上述三服务负载平衡设置中分配连接。

已收到请求 已选择的服务 当前 N 值(活跃交易数量 * TTFB) 备注
Request-1 Service-HTTP-3;(N = 0) N = 2 Service-HTTP-3 具有最低的 N 值。
Request-2 Service-HTTP-3; (N = 2) N = 4 Service-HTTP-3 具有最低的 N 值。
Request-3 Service-HTTP-3; (N = 4) N = 6 Service-HTTP-3 具有最低的 N 值。
Request-4 Service-HTTP-1; (N = 6) N = 8 Service-HTTP-1 和 Service-HTTP-3 具有相同的 N 值。设备使用轮询方法分发请求。
Request-5 Service-HTTP-3; (N = 6) N = 8 Service-HTTP-1 和 Service-HTTP-3 具有相同的 N 值。
Request-6 Service-HTTP-2; (N = 7) N = 8 Service-HTTP-2 具有最低的 N 值。
Request-7 Service-HTTP-3; (N = 8) N = 10 Service-HTTP-1、Service-HTTP-2 和 Service-HTTP-3 具有相同的 N 值。Citrix ADC 设备使用循环方法分发请求。
Request-8 Service-HTTP-1; (N = 8) N = 10 Service-HTTP-1 和 Service-HTTP-2 具有相同的 N 个值,设备使用循环方法来分发请求。

Service-HTTP-1 在完成其活动事务或其 N 值小于其他服务(Service-HTTP-2 和 Service-HTTP-3)时再次选择进行负载平衡。

分配权重时选择服务

下图说明了 Citrix ADC 设备在分配权重时如何使用最短响应时间方法。

图 2. 在分配权重时,最小响应时间负载平衡方法的工作原理

轻量重

虚拟服务器使用以下表达式中的值 (Nw) 来选择服务:

Nw = (N) * (10000/重量) 其中 N = (活动事务数量 * TTFB)

假设为 Service-HTTP-1 分配了权重 2,为 Service-HTTP-2 分配了权重 3,为 Service-HTTP-3 分配了权重 4。

Citrix ADC 设备按如下方式分发请求:

  • Service-HTTP-3 接收第一个请求,因为它不处理任何活动事务。

    如果服务未处理任何活动事务,则无论分配给它们的权重如何,设备都会选择它们。

  • Service-HTTP-3 接收第二、第三、第四和第五个请求,因为此服务的 Nw 值最低。

  • Service-HTTP-2 接收第六个请求,因为此服务的 Nw 值最低。

  • Service-HTTP-3 接收第七个请求,因为此服务的 Nw 值最低。

  • Service-HTTP-2 接收第八个请求,因为此服务的 Nw 值最低。

Service-HTTP-1 的权重最低,因此 Nw 值最高,因此虚拟服务器不会选择它进行负载平衡。

下表说明了如何在上述三服务负载平衡设置中分配连接。

已收到请求 已选择的服务 当前 Nw 值 = (N) * (10000/重量) 备注
Request-1 Service-HTTP-3; (Nw = 0) Nw = 5000 Service-HTTP-3 具有最低的 Nw 值。
Request-2 Service-HTTP-3; (Nw = 5000 Nw = 10000 Service-HTTP-3 具有最低的 Nw 值。
Request-3 Service-HTTP-3; (Nw = 10000) Nw = 15000 Service-HTTP-3 具有最低的 Nw 值。
Request-4 Service-HTTP-3; (Nw = 15000) Nw = 20000 Service-HTTP-3 具有最低的 Nw 值。
Request-5 Service-HTTP-3; (Nw = 20000) Nw = 25000 Service-HTTP-3 具有最低的 Nw 值。
Request-6 Service-HTTP-2; (Nw = 23333.34) Nw = 26666.67 Service-HTTP-2 具有最低的 Nw 值。
Request-7 Service-HTTP-3; (Nw = 25000) Nw= 30000 Service-HTTP-3 具有最低的 Nw 值。
Request-8 Service-HTTP-2; (Nw = 26666.67) Nw = 30000 Service-HTTP-2 具有最低的 Nw 值。

当 Service-HTTP-1 完成其活动事务或其 Nw 值小于其他服务(Service-HTTP-2 和 Service-HTTP-3)时,将选择 Service-HTTP-1 进行负载平衡。

使用 CLI 配置最短响应时间负载平衡方法

在命令提示符处键入;

set lb vserver <name> -lbMethod LEASTRESPONSETIME

示例:

set lb vserver Vserver-LB-1 -lbMethod LEASTRESPONSETIME

使用 GUI 配置最短响应时间负载平衡方法

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器,然后打开虚拟服务器。
  2. 在“高级设置”中,选 择“最短响应时间

有关配置监视器的更多信息,请参阅在负载平衡设置中配置监视器

最小响应时间法