Citrix ADC

提高缓存性能

您可以提高集成缓存的性能,包括处理同一缓存数据的同时请求,避免与源服务器刷新缓存响应相关联的延迟,以及确保请求响应的频率足以值得缓存。

减少闪光人群

当许多用户同时请求相同的数据时,会出现闪存人群。如果您将缓存配置为仅在下载整个对象后提供点击,则闪存群中的所有请求都可能成为缓存未命中。

以下技术可以减少或消除闪光人群:

  • PREFETCH:在响应过期之前刷新,以确保响应永远不会过时或非活动。有关更多信息,请参阅“在过期前刷新响应”部分。
  • 缓存缓冲:一旦从源服务器收到响应标头,就开始向多个客户端提供响应,而不是等待下载整个响应。可同时下载响应的客户端数量的唯一限制是可用的系统资源。即使启动下载的客户端在下载完成之前停止,Citrix ADC 设备也会下载并提供响应。如果响应的大小超过缓存大小,或者如果响应被分块,则缓存会停止存储响应,但对客户端的服务不会中断。
  • 闪存缓存: 闪存缓存将请求排队,并且一次只允许一个请求到达服务器。

有关详细信息,请参阅“将请求排队到缓存”部分。

在到期前刷新响应

为了确保缓存响应在需要时处于新状态,PREFETCH 选项会在响应计算到期时间之前刷新响应。预取间隔是在收到第一个客户端请求后计算的。从那时起,Citrix ADC 设备会按照您在 PREFETCH 参数中配置的时间间隔刷新缓存的响应。

此设置对于在请求之间频繁更新的数据非常有用。它不适用于负面回复(例如 404 消息)。

使用命令行界面为内容组配置预取

在命令提示窗口中,键入:

set cache contentgroup <name> -prefetch YES [-prefetchPeriod <seconds> | -prefetchPeriodMilliSec <milliseconds>] [-prefetchMaxPending <positiveInteger>]

* 使用 GUI 为内容组配置预取

导航到优化 > 集成缓存 > 内容组,然后选择 内容组

其他选项卡上,在“Flash Crowts”和“预取”组中,选择预取选项,然后在“间隔”和“最大挂起预取数量”文本框中指定值。

将请求排队到缓存

Flash Cache 选项对同时到达的请求(闪存群)进行排队,检索响应并将其分发给请求位于队列中的所有客户端。如果在此过程中响应变为不可缓存,Citrix ADC 设备将停止提供来自缓存的响应,而是提供源服务器对排队客户端的响应。如果响应不可用,客户端将收到一条错误消息。

默认情况下,闪存缓存处于禁用状态。您不能在同一内容组上启用轮询每次 (PET) 和闪存缓存。

Flash Cache 的一个缺点是,如果服务器回复错误(例如,一个 404 快速修复),则错误会被煽动到等待的客户端。

注意: 如果启用了闪存缓存,在某些情况下 Citrix ADC 设备无法将客户端请求中的“接受编码”标头与响应中的“内容编码”标头正确匹配。Citrix ADC 设备可以假定这些标头匹配并错误地提供命中服务。作为解决方案,您可以配置集成缓存策略,以禁止向没有适当的接受编码标头的客户端提供点击服务。

使用命令行界面启用闪存缓存

在命令提示窗口中,键入:

set cache contentgroup <contentGroupName> -flashcache yes

使用 GUI 启用闪存缓存

导航到优化 > 集成缓存 > 内容组,然后选择内容组。

其他选项卡上的“闪存人群”和“预取”组中,选择预取选项。

客户端停止下载后缓存响应

您可以设置 Quick Aabort 参数以继续缓存响应,即使客户端在响应进入缓存之前停止请求也是如此。

如果下载的响应大小小于或等于快速中止大小,Citrix ADC 设备将停止下载响应。如果将“快速中止”参数设置为 0,则所有下载都将停止。

使用命令行界面配置快速中止大小

在命令提示窗口中,键入:

set cache contentgroup <name> -quickAbortSize <integerInKBytes>

使用 GUI 配置快速中止大小

  1. 导航到优化 > 集成缓存 > 内容组,然后选择内容组。
  2. 内存选项卡上,在“快速中止:如果超过文本框,则继续缓存”中设置相关值。

缓存前需要最少的服务器点击次数

您可以配置必须在源服务器上找到响应才能被缓存的最小次数。如果缓存内存快速填满并且命中率低于预期,则应考虑增加最小命中率。

最小点击次数的默认值为 0。此值在第一个请求之后缓存响应。

使用命令行界面配置缓存前所需的最小点击次数

在命令提示窗口中,键入:

set cache contentgroup <name> -minhits <positiveInteger>

使用 GUI 配置缓存前所需的最小点击次数

  1. 导航到优化 > 集成缓存 > 内容组,然后选择内容组。
  2. 内存选项卡上,如果点击小于文本框,请在“不缓存”中设置相关值。

性能优化示例

在此示例中,客户访问股票报价。股票报价是高度动态的。您可以将集成缓存配置为向并发客户提供相同的股票报价,而无需向源服务器发送多个请求。股票报价在下载到所有客户后到期,并从原始服务器获取同一股票的下一个报价请求。这可确保报价始终是最新的。

以下任务概述介绍了为股票报价应用程序配置缓存的步骤。

配置股票报价应用程序的缓存

为股票报价创建内容组

有关更多信息,请参阅“关于内容组”。“

为此内容组配置以下内容:

  1. 在过 期方法 选项卡上,选中收到完整响应后过期复选框。
  2. 其他选项卡上,选中闪存缓存复选框,然后单击创建
  3. 添加缓存策略以缓存股票报价。

有关详细信息,请参阅“在集成缓存中配置策略。

为策略配置以下内容

  1. 操作”和“在组中存储”列表中,选择缓存,然后选择您在上一步中定义的组。
  2. 单击添加,然后在添加表达式”对话框中配置一个用于识别股票报价请求的表达式,例如:http.req.url.contains(“cgi-bin/stock-quote.pl”)
  3. 激活策略。

有关详细信息,请参阅“全局绑定集成缓存策略”。“ 在此示例中,您将此策略绑定到请求时间覆盖处理,并将优先级设置为较低的值。

提高缓存性能