代理缓存技术
单击下面的各个类别,了解有关 ProxySG 代理缓存技术的更多信息。
简介
Blue Coat Systems 产品是专用于保护、控制和加速 Web 的代理设备。ProxySG 系列中的所有产品都包含 SGOS(一款全部由 Blue Coat Systems 构建的准专利嵌入式操作系统)。
SGOS 不包含通用代码,也不会重复使用其他系统的代码。该操作系统的构建完全是为了提高代理缓存和 Web 应用性能。因此,Blue Coat 产品是企业代理缓存应用的首选基础设施。以下内容主要介绍了 SGOS 核心技术,特别是为改进互联网用户体验而开发的技术。
对象管线化:首次快速内容检索
当浏览器请求内容时,浏览器与远距离 Web 服务器间就会发生许多往返传输。这是因为网页通常包含许多对象,并且每个对象通常都必须首先是一个 TCP 会话设置,然后是 HTTP“GET”请求(图 1)。

图 1:浏览器检索网页的方式
这种连续的对象检索会给最终用户造成显著的延时。部署 Blue Coat ProxySG 可以消除大部分的延时。ProxySG 利用 SGOS 提供的延时攻击算法终止客户端连接。其中的一种算法被称为对象管线化。此项准专利算法并不连续检索对象,而是在源服务器允许并行检索对象时,作为多个同步 TCP 连接开始进行检索。然后,在浏览器请求时检索对象直接从设备交付到用户桌面。

图 2:Blue Coat 对象管线化
由于采用对象管线化技术,Blue Coat 通常可以将首次网页检索速度提高 50%(如图 3 所示)。

图 3:加速首次网页请求
NSS Group 在公布的 Blue Coat 产品技术评估中肯定了对象管线化的出色效果:
“最令人惊讶的是在代理缓存初始化期间采集的第二组数据。在此期间,代理缓存完全是空的,因而您预测“非缓存”数据组不会有提高。但事实显示,性能得到了明显提高(使用缓存的检索比不使用缓存的检索速度快一倍),这证明 Blue Coat 采用的对象管线化技术具有显著的优势。”
适应性刷新:准确的数据以及更短的响应时间
由于 Web 服务器中内容的变化,代理设备必须更新其临时存储内容。通常,代理要让最终用户相信交付的内容是最新数据,就必须发送“刷新检查”到源服务器。但为了快速交付内容,必须在执行此刷新活动之前发出用户请求。如果仅在用户请求内容时执行刷新检查,用户则会遭受往返延时。这将导致互联网在第一个位置便发生减速,并且无法显著提高网页响应速度。
快速、准确交付网页的唯一方法是,将刷新活动与实际的最终用户请求分开。SGOS 通过另一个延时攻击算法(“适应性刷新”)执行该项活动。这一准专利算法会根据其刷新需求有选择地刷新 Web 对象。此刷新活动与实际的用户请求不同步,因此不会影响响应速度。
选择要刷新的对象和需要了解对象活动的时间。Web 对象以不同速率进行变化。有些对象变化频繁,而有些则很少变化,许多对象变化速率介于这两种情况之间。图 4 中的直方图来自于全球普遍使用的 Blue Coat 代理设备导出的数据。(直方图不代表对象变化频率的绝对模型,仅显示分析期间观察到的变化速率。)

图 4:对象以不同的速率变化
作为 SGOS 不可或缺的一部分,适应性刷新算法是行业中唯一一项为其店铺中每个 Web 对象开发“变化模型”的技术。它也根据用户请求的对象历史记录开发“使用模型”。然后汇总这两部分信息,以确定适用于该对象的刷新模式。(算法导出的数值也随着时间适应这些模型产生的变化。)
使用适应性刷新算法时,ProxySG 将自动通过源服务器执行“刷新率检查”,以确保删除旧内容并替换为新内容。例如,如果 www.nbcnews.com 首页中的对象在访问代理的用户群中很流行,操作系统将更新频繁变化的对象(例如“主要案例”对象),但不会刷新没有变化的对象(例如“NBC 徽标”对象)。这样即可确保将当前内容快速交付给最终用户。
虽然对象管线化提高了首次网页请求的响应速度,但适应性刷新通过消除刷新对象导致的延时,显著加快了后续请求的速度。图 5 显示了 Blue Coat 设备实现的性能改进。

图 5:对象管线化与适应性刷新的组合效果
(资料来源:客户数据)
只有通过 Blue Coat Systems 率先推出的延时攻击算法,互联网才能实现首次访问和 N 次请求内容加速。SGOS 能够快速、准确地交付内容,是行业中最有效的安全代理解决方案的技术基础。
适应性刷新:对带宽使用的影响
选择性的适应性刷新技术是 SGOS 为用户提供最新网络内容、但不包含多余网络流量的关键。测定代理缓存设备对广域网或互联网连接带宽影响的有效方法是:针对代理缓存消耗的流量绘制最终用户流量图。两者间的明确差异是“带宽增益”。当代理缓存为用户交付的带宽超过其从主干网得到的带宽时即发生带宽增益现象。 图 6 显示了 Blue Coat 部署的带宽增益。

图 6:实际部署的带宽增益
本站点输出链路的可用带宽为 3000 千字节/秒。通过部署 ProxySG 交付给最终用户的总带宽接近 4000 千字节/秒。这样,网络干线的容量有效地提高了 33%。
由于适应性刷新算法关系到要刷新的对象和时间,而且非常具有选择性,因此 SGOS 可以使用户极高效地使用现有带宽。
刷新率测定和报告
SGOS 可自动测定和报告交付给最终用户内容的刷新率。该报告功能基于适应性刷新算法跟踪的 Web 对象属性。该测定功能首先跟踪上次检查刷新率后、代理设备存储中交付最终用户对象的次数。然后,将这些结果与适应性刷新活动结果进行对比。检查该对象的刷新率时,可以计算出各种结果:
- 如果对象在服务器中没有发生变化,该对象的上一次交付则被记录为“最新”。
- 如果对象在服务器中已发生变化,则无论交付对象相对源服务器中更改的对象是否“陈旧”,操作系统都将计算上一对象交付的刷新百分比。
然后,将这些信息提交给每个 Blue Coat 代理设备都附带的 GUI 管理控制台(图 7)。

图 7:内容刷新率报告
通过此报告机制,网络管理员可以相信用户收到的内容正是其请求时网络中存在的内容。
存储子系统
磁盘中存储对象的方法对获得高性能和高可扩展性至关重要。它可以确定 (1) 客户端请求缓存对象时的访问速度,(2) 在磁盘上捕获和存储新对象的速度,以及 (3) 每个硬盘可以满足客户端请求的速率。
SGOS 对象存储系统不是一个文件系统,而是一个对象缓存。该操作系统中没有目录。对象访问通过 RAM 中的 hash 表进行,确保在一次磁盘读取中获得所有对象。文件系统在空间耗尽时运行速度较低,而缓存可以在对象满时达到最高性能。
该磁盘存储一部分 URL 名称空间的对象。可用的磁盘间可自动实现访问均衡。代理设备通常与装满对象的磁盘一起运行。不断删除很少使用的旧对象可以为新对象腾出空间。操作系统中的磁盘布局和替换算法有助于此流程优化新对象写入磁盘的速度。
在不太可能发生的磁盘故障中,URL 名称空间部分的对象可自动重新映射到其余的磁盘。新磁盘可以“热添加”到现有代理,以提高其存储容量。由于 RAID 对 Web 缓存并无益处,而且还会通过存储更多的对象,浪费操作系统用于提高点击率的磁盘资源,因此不予使用。


