Citrix ADC

自定义加载方法

根据服务器参数(如CPU使用率、内存和响应时间)执行自定义负载均衡。当使用自定义加载方法时,Citrix ADC设备通常选择不处理任何活动事务的服务。如果负载平衡设置中的所有服务都在处理活动事务,则设备将选择负载最小的服务。一种特殊类型的监视器(称为负载监视器)计算网络中每个服务上的负载。负载监控器不标记服务的状态,但是当服务未UP时,它们将服务从负载平衡决策中取出。

有关负载监控器的详细信息,请参见理解负载监控器.下图说明了负载监控器的操作方式。

图1。负载监控器如何运行

CustomLoad_working

负载监视器使用SNMP探针通过向服务发送SNMP GET请求来计算每个服务上的负载。该请求包含一个或多个对象id (oid)。服务响应一个SNMP GET响应,其中包含与SNMP oid对应的度量。负载监控器使用响应指标来计算服务上的负载。

负载监视器通过以下参数计算服务的负载:

  • 通过SNMP探针检索的度量值作为表存在于Citrix ADC设备中。
  • 为每个度量设置的阈值。
  • 分配给每个指标的权重。

例如,考虑三个服务:服务- http -1、服务- http -2和服务- http -3。

  • Service-HTTP-1占用20mb内存。
  • Service-HTTP-2占用内存为70mb。
  • Service-HTTP-3占用80mb内存。

负载均衡的服务器可以将CPU和内存使用情况等指标导出到服务,而服务又可以将这些指标提供给负载监视器。负载监控器向服务发送包含oid 1.3.6.1.4.1.5951.4.1.1.41.1.5、1.3.6.1.4.1.5951.4.1.1.41.1.4、1.3.6.1.4.1.5951.4.1.1.41.1.3的SNMP GET请求。不支持STRING类型的SNMP OID,因为不能使用STRING OID计算负载。可以使用其他数据类型(如INT和gauge32)计算负载。这三个服务响应请求。Citrix ADC设备比较导出的指标,然后选择Service-HTTP-1,因为它有更多可用内存。下面的图表说明了这个过程。

图2。自定义加载方法如何工作

custom_working2

如果每个请求使用10mb内存,Citrix ADC设备将按以下方式发送请求:

  • service - http -1接收第1、2、3、4、5个请求,因为该服务的N值最低。
  • Service-HTTP-1和Service-HTTP-2现在具有相同的负载,因此虚拟服务器对这些服务器恢复轮询方法。因此,Service-HTTP-2收到第6个请求,Service-HTTP-1收到第7个请求。
  • 由于Service-HTTP-1、Service-HTTP-2和Service-HTTP-3现在都具有相同的负载,因此虚拟服务器对Service-HTTP-3也恢复到轮询方法。因此,Service-HTTP-3收到第8个请求。

下表总结了N的计算方法。

请求得到 服务选择 当前N值(活动事务数) 讲话
要求1 Service-HTTP-1;(n = 20) N = 30 其中Service-HTTP-3的N值最小。
请求2 Service-HTTP-1;(n = 30) N = 40 -
要求3 Service-HTTP-1;(n = 40) N = 50 -
要求4 Service-HTTP-1;(n = 50) N = 60 -
要求5 Service-HTTP-1;(n = 60) N = 70 -
Request-6 Service-HTTP-1;(n = 70) N = 80 “Service-HTTP-2”和“Service-HTTP-3”的N值相同。
Request-7 Service-HTTP-2;(n = 70) N = 80 Service-HTTP-3有相同的N个值。
Request-8 Service-HTTP-1;(n = 80) N = 90 “服务- http -1”、“服务- http -2”和“服务- http -3”的N值相同。

如果为服务分配了不同的权重,则自定义负载算法将同时考虑每个服务的负载和分配给每个服务的权重。它通过以下表达式中的值(Nw)选择服务:

Nw = (N) *(10000 /重量)

如前所述,假设Service-HTTP-1的权重为4,Service-HTTP-2的权重为3,Service-HTTP-3的权重为2。如果每个请求使用10mb内存,Citrix ADC设备将按以下方式发送请求:

  • service - http -1会接收第1、2、3、4、5、6、7、8个请求,因为这个服务的Nw值最低。
  • service - http -2会收到第九个请求,因为这个服务的Nw值最低。

Service-HTTP-3的Nw值最高,因此不考虑负载均衡。

下表总结了如何计算Nw。

请求得到 服务选择 当前Nw值(活动事务数)* (10000 / Weight) 讲话
要求1 Service-HTTP-1;(Nw = 50000) Nw = 75000 Service-HTTP-1的Nw值最低。
请求2 Service-HTTP-1;(Nw = 5000) Nw = 100000 -
要求3 Service-HTTP-1;(Nw = 15000) Nw = 125000 -
要求4 Service-HTTP-1;(Nw = 20000) Nw = 150000 -
要求5 Service-HTTP-1;(Nw = 23333.34) Nw = 175000 -
Request-6 Service-HTTP-1;(Nw = 25000) Nw = 200000 -
Request-7 Service-HTTP-1;(Nw = 23333.34) Nw = 225000 -
Request-8 Service-HTTP-1;(Nw = 25000) Nw = 250000 -
Request-9 Service-HTTP-2;(Nw = 233333.34) Nw = 266666.67 Service-HTTP-2的Nw值最低。

当服务- http -1完成其活动事务时,或者当其他服务(服务- http -2和服务- http -3)的Nw值等于400,000时,会选择服务- http -1进行负载均衡。

下图说明Citrix ADC设备在分配权重时如何使用自定义加载方法。

图3。自定义负载方法如何在分配权重时工作

自定义负载重量

若要配置自定义加载方法,请参见配置不包含策略的负载均衡方式

自定义加载方法