Citrix ADC

通过虚拟服务器级别的慢启动逐步增加新服务的负载

您可以配置Citrix ADC设备,以便在将服务添加到负载平衡配置或将状态从DOWN更改为UP后立即逐渐增加服务上的负载(服务每秒接收的请求数)(在本文档中,术语“新服务”用于这两种情况)。您可以使用选择的负载值和时间间隔(手动慢启动)手动增加负载,也可以配置设备以指定的时间间隔(自动慢启动)增加负载,直到服务接收到与配置中的其他服务一样多的请求。在新服务的升级期间,设备使用配置的负载平衡方法。

此功能不是全局可用的。它必须为每个虚拟服务器配置。该功能仅适用于使用以下负载平衡方法之一的虚拟服务器:

  • 轮循
  • 至少连接
  • 最小响应时间
  • 最小带宽
  • 至少包
  • 最小响应时间法(LRTM)
  • 自定义加载

要实现此功能,需要设置以下参数:

  • 新服务请求率,这是每次增加请求率时发送给新服务的请求数量或百分比增加的数量。也就是说,您可以根据每秒的请求数或当前由现有服务承担的负载百分比来指定增量的大小。设置为0(零),表示新建业务不慢启动。

    注:在自动慢启动模式下,如果指定的值会给新业务带来比其他业务更大的负载,则最终增量小于指定的值。

  • 增量间隔,单位为秒。如果此值设置为0(零),则负载不会自动增加。你必须手动增加它。

使用自动慢启动功能,当出现以下情况之一时,服务将退出慢启动阶段:

  • 实际请求速率小于新的业务请求速率。
  • 服务在三个连续增量间隔内不接收流量。
  • 请求速率增加了200倍。
  • 新服务必须接收的流量百分比大于等于100。

使用手动慢启动时,服务将保持在慢启动阶段,直到您将其带出该阶段。

手动慢启动

如果要手动增加新服务的负载,请不要为负载平衡虚拟服务器指定增量间隔。只指定新的服务请求率和单位。在没有指定间隔的情况下,设备不会定期增加负载。它将新服务的负载维持在由新服务请求率和单位组合指定的值上,直到您手动修改其中任何一个参数。例如,如果将新服务请求速率和单位参数分别设置为25和“每秒”,则设备将以每秒25个请求的速度维持新服务上的负载,直到更改其中任何一个参数。当您希望新建的服务退出慢启动模式,接收到的请求数与原有服务相同时,可将新建的服务请求速率设置为0。

例如,假设您正在使用虚拟服务器以轮循模式对2个服务Service1和Service2进行负载均衡。进一步假设虚拟服务器每秒接收240个请求,并且在各个服务之间均匀地分配负载。当将新服务Service3添加到配置中时,您可能希望在向其发送其全部负载份额之前,通过每秒10、20和40个请求的值手动增加其负载。下表显示了设置这三个参数的值。

表1。参数值

参数 价值
间隔(秒) 0
新服务请求率 10,20,40和0,间隔由你选择
新服务请求率的单位 每秒请求数

当您将新的服务请求速率参数设置为0时,Service3不再被视为新服务,并接收其全部负载份额。

假设您在Service3的升级期间添加了另一个服务Service4。在此例中,当新的服务请求速率参数设置为40时,添加了Service4。因此,Service4开始每秒接收40个请求。

下表显示了在此示例中描述的时间段内服务的负载分布。

表2。手动增加负载时的业务负载分布

新服务请求速率= 10 req/sec (Service3added) 新服务请求速率= 20req /sec 新服务请求速率= 40 req/sec (Service4added) 新增服务请求速率= 0 req/sec(新增服务退出慢启动模式)
Service1 115 110 80 60
Service2 115 110 80 60
Service3 10 20. 40 60
Service4 - - 40 60
总请求数/秒(虚拟服务器上的负载) 240 240 240 240

自动慢启动

如果您希望设备以指定的间隔自动增加新服务的负载,直到该服务被认为能够处理其全部负载份额为止,请设置新的服务请求速率参数、单元参数和增量间隔。当所有参数都设置为非0的值时,设备将在指定的间隔内按新服务请求率的值增加新服务上的负载,直到服务接收到其全部负载份额。

以服务Service1、Service2、Service3和Service4绑定负载均衡虚拟服务器vserver1为例。进一步假设vserver1每秒接收100个请求,并且它将负载均匀地分配给各个服务(每个服务每秒25个请求)。当您向配置中添加第五个服务Service5时,您可能希望设备在前10秒内每秒发送4个请求,在接下来的10秒内每秒发送8个请求,以此类推,直到它每秒接收20个请求。对于这个需求,下表显示了您设置的三个参数的值:

表3。参数值

参数 价值
间隔(秒) 10
增量值 4
新服务请求率的单位 每秒请求数

使用此配置,新服务在添加或其状态从DOWN变为UP后50秒开始接收与现有服务相同数量的请求。在此期间的每个间隔期间,设备将在没有逐步增量的情况下发送给新服务的多余请求分配给现有服务器。例如,在没有逐步增量的情况下,每个服务(包括Service5)每秒将接收20个请求。通过逐步增量,在前10秒内,当Service5每秒只接收4个请求时,设备将每秒超过16个的请求分配给现有服务,从而在50秒期间产生如下表和图所示的分布模式。在50秒之后,Service5不再被认为是一个新服务,它接收正常的流量份额。

表4。添加Service5后50秒内所有业务负载分布情况

0秒 10秒 20秒 30秒 40秒 50秒
请求/秒forService1 25 24 23 22 21 20.
请求/秒forService2 25 24 23 22 21 20.
请求/秒forService3 25 24 23 22 21 20.
请求/秒forService4 25 24 23 22 21 20.
请求/秒forService5 0 4 8 12 16 20.
总请求数/秒(虚拟服务器上的负载) One hundred. One hundred. One hundred. One hundred. One hundred. One hundred.

图1所示。添加Service5后50秒内所有业务负载分布图

负荷分布图

另一种需求可能是,设备在前5秒内向现有服务发送25%的负载,在接下来的5秒内发送50%,以此类推,直到每秒接收20个请求。对于这个需求,下表显示了您设置这三个参数的值。

表5所示。参数值

参数 价值
间隔(秒) 5
增量值 25
新服务请求率的单位 百分比

使用此配置,服务在添加或其状态从DOWN变为UP后20秒开始接收与现有服务一样多的请求。新服务增加期间的流量分布与前面描述的相同,其中步骤增量的单位是“每秒请求数”。

设置慢启动参数

设置慢启动参数设置lb vserver或者是添加lb vserver命令。以下命令用于添加虚拟服务器时设置慢启动参数。

通过使用命令行界面为新服务配置逐步加载增量

在命令提示符下,输入以下命令来配置服务负载的逐步增量并验证配置:

add lb vserver     [-newServiceRequest ] [] [-newServiceRequestIncrementInterval ] show lb vserver  

例子

set lb vserver BR_LB - newservicerequest 5 PER_SECOND - newservicerequestincrementinterval 10 Done show lb vserver BR_LB BR_LB (192.0.2.33:80) - HTTP类型:ADDRESS State: UP ... ... . sh新业务启动请求速率:5 PER_SECOND,增量间隔:10 ... ...做< !--NeedCopy-->

通过使用配置实用工具为新服务配置逐步负载增量

  1. 导航到流量管理>负载均衡>虚拟服务器,打开虚拟服务器。
  2. 在“高级设置”中选择“方法”,设置慢启动参数如下:
    • 新服务启动请求速率。
    • 新的服务请求单元。
    • 增量区间。
通过虚拟服务器级别的慢启动逐步增加新服务的负载