Microsoft? Internet Security and Acceleration (ISA) Server 2006 提供网络之间受控的安全访问,并充当一个提供快速 Web 响应和卸载功能以及用于远程访问的安全 Web 发布的 Web 缓存代理。它的多层体系结构和高级策略引擎为您需要的安全级别和所要的资源之间的平衡提供了精确的控制。在一台边缘服务器连接多个网络时,与组织中的其他服务器相比,ISA Server 要处理大量流量。因此,ISA Server 是专为高性能而构建的。本文为部署具有最佳性能和充足容量的 ISA Server 提供指南(本文还包含指向英文网页的链接)。
在大多数情况下,可用网络带宽(特别是 Internet 链路带宽)可通过运行在可用的入门级硬件上的 ISA Server 来保护。对于各种 Internet 链路,典型的保护超文本传输协议 (HTTP) 流量的出站 Web 访问的默认 ISA Server 部署需要以下特定硬件配置。下表列出了这些硬件配置(有关详细信息,请参阅本文档中的“Web 代理方案”)。
Internet 链路带宽 | 最高 5 T1 | 最高 25 Mbps | 最高 T3 | 最高 90 Mbps |
处理器/核 | 1 | 1 | 2 | 2/2 |
处理器类型 | Pentium III750 MHz 或更高 | Pentium 4 3.0–4.0 GHz | Xeon 3.0–4.0 GHz | Xeon 双核 AMD 双核 2.0–3.0 GHz |
内存 | 512 MB | 512 MB | 1 GB | 2 GB |
磁盘空间 | 150 MB | 2.5 GB | 5 GB | 10 GB |
网络适配器 | 10/100 Mbps | 10/100 Mbps | 100/1000 Mbps | 100/1000 Mbps |
并发虚拟专用网络 (VPN) 远程访问连接数 | 150 | 700 | 850 | 2000 |
使用传输层状态筛选而不是 Web 代理筛选器,将同样流量模型的 CPU 使用率提高了 10 倍。状态筛选和应用程序筛选可同时使用,以便对性能进行精确控制。
了解容量需求是确定 ISA Server 部署所必需的资源的第一步。对于大规模的部署,会有几种具体的部署情况。一般情况下,您可能需要考虑下列衡量指标:
• | 连接到 ISA Server 计算机的每个网络上的可用和实际带宽。 |
• | 组织中的用户数量。 |
• | 应用层的各种衡量指标(例如,邮件服务器中的平均邮箱大小)。 |
对于 ISA Server 容量的最重要的衡量指标是实际网络带宽,因为它们通常代表真实的容量需求。在许多情况下,网络带宽(特别是 Internet 链路的网络带宽)可以确定 ISA Server 容量。
相对而言,用户数量不能充分表明容量需求,因为用户具有不同的使用模式,具体取决于用户需求和组织的网络策略。可能已经证明,在某些情况下,用户数量以及应用程序级别的衡量指标对于估计网络流量很有用。
所有 ISA Server 容量规划情况都属于以下类别之一:
• | 所有网络带宽都可以通过一台入门级 ISA Server 计算机来提供。有关详细信息,请参阅本文档中的“单台入门级计算机”。 |
• | 网络带宽大于任何单台计算机所能提供的带宽,并且使用 ISA Server 确保企业级应用程序的安全。有关详细信息,请参阅本文档中的“企业级”。 |
以下几节详细说明了这些情况。
在大多数情况下,单台计算机的处理能力足以确保通过标准 Internet 链路的流量的安全性。有关 Internet 使用情况的市场研究报告表明,大部分公司的 Internet 链路带宽在 2 到 20 Mbps 之间。这表明一台具有单处理器或双处理器的入门级计算机足以满足大多数 ISA Server 部署。
根据出站防火墙测试结果,运行在单个 Pentium 4 2.4-GHz 处理器上的 ISA Server 在 75% 的 CPU 使用率下可以提供大约 25 Mbps 的吞吐量。这意味着对于每条 T1 Internet 链路 (1.5 Mbps),Microsoft 防火墙仅使用 4.5% 的 CPU 资源。双 Xeon 2.4 GHz 处理器在 75% 的 CPU 使用率下(或每条 T1 链路利用 2.5% 的 CPU)可以提供大约 45 Mbps (T3) 的吞吐量。
单台入门级计算机还适合于通过具有上一段描述的带宽限制的独立广域网 (WAN) Internet 链路连接到公司资源的分支机构。
对于用户超过 500 人的大型企业级站点,情况就更复杂了。这种情况需要进行更精心地规划,因为此时的 Internet 带宽非常大,使得系统的 CPU 资源成为性能瓶颈。
Internet 连接带宽对能够完全利用该连接的计算机数量进行了限制,其上限可能比大多数容量估计值都大得多。起初,最大网络容量的规划可能是保守的,因为容量需求通常会随着时间的推移而不断增加。为了适应未来需求的增长,您还应规划处理能力升级。有关硬件扩展技术、其性能特性和其他扩展优势的描述,请参阅本文档中的“ISA Server 扩展”。
在确定了哪种容量情况可以满足您的需要之后,下一个任务就是加以优化以便获得最佳性能。对于企业级 ISA Server,这意味着设计充足的硬件资源,使系统的 CPU 能力作为可能的资源瓶颈。对于单台入门级 ISA Server 计算机而言,可能的瓶颈是 Internet 带宽而非您选择的处理器。
ISA Server 容量取决于 CPU、内存、网络和磁盘硬件资源。每种资源都有容量限制,只要所有资源的使用都不超过其上限,系统在整体上就能正常运行,从而可以达到其性能目标。如果达到了其中的某一限度,性能就会显著下降,从而产生瓶颈。在这种情况下,我们就说系统受此项资源的约束。每个瓶颈在系统整体性能中都有其症状,可以帮助检测容量不足的资源。在发现性能瓶颈之后,可以通过增加其容量不足的资源的容量来消除瓶颈。
从成本的角度看,设计一个受 CPU 资源约束的系统是最高效的。这是它是升级成本最高的资源。而其他资源短缺问题的解决成本则相对较低:添加另一个磁盘,添加另一个网络适配器,或者增加内存。我们建议您对系统的硬件进行优化,以实现最高的 CPU 利用率。确保系统在耗尽 CPU 资源之前不会出现性能瓶颈。如果 CPU 能力可以维持预期的负荷,则瓶颈永远不会出现。为此,所有其他资源都必须具有足够融领。以下几个小节说明了如何设计 CPU 使用率最大化(每种资源都具有足够容量)的系统,如何监视每种资源以及如何对每种资源中的瓶颈进行故障排除。
与大多数为大量客户端请求提供服务的服务器应用程序一样,CPU 速度的提高、处理器缓存的增加和系统体系结构的改进都会提高 ISA Server 的性能:
• | CPU 速度。在大多数应用程序中,CPU 更快 ISA Server 性能也会越高。不过, CPU 速度的提高并不能确保性能也会成比例地增加。受大量和频繁的内存访问的影响,提高 CPU 速度可能会导致在等待内存时,浪费更多的空闲 CPU 周期。 |
• | L2/L3 缓存大小。处理大量的数据需要频繁地访问内存。L2/L3 缓存提高了大量内存读取的性能。 |
• | 系统体系结构。由于 ISA Server 在网络设备、内存和 CPU 之间传送大量的数据负荷,CPU 周围的系统组件也会影响 ISA Server 的性能。更快的内存前端总线和更快的 I/O 总线可以提高整体容量。 |
CPU 瓶颈的特征如下:\Processor\% Processor Time 性能计数器数值很高,而网络适配器和磁盘 I/O 保持很低的容量。在这种情况下(这是理想的 CPU 使用率最大化的系统),达到 100% 的使用率就意味着必须提高 CPU 能力,不管是升级为更快的 CPU 还是添加更多处理器。有关 CPU 扩展选项的信息,请参阅本文档中的“扩展 ISA Server”。如果 ISA Server 的响应时间仍然很长,但 CPU 的使用率较低,则说明瓶颈是由其他组件引起的。
在 CPU 的使用率不超过 60% 的情况下,使用超线程功能也有助于降低 CPU 的使用率。对于更高的 CPU 使用率,是否启用超线程对于 CPU 资源的使用没有影响。
ISA Server 内存用于:
• | 存储网络套接字(主要来自于非分页池) |
• | 内部数据结构 |
• | 未决的请求对象 |
对于 Web 代理缓存的情况,内存还用于:
• | 磁盘缓存目录结构 |
• | 内存缓存 |
由于 ISA Server 要处理大量需要系统非分页内存的并发连接,因此,内存限制因素是非分页池的大小,而这是由总的内存大小决定的。对于 Microsoft Windows Server? 2003 和 Windows? 2000 Server 操作系统,非分页池大小的最大值和最小值如下表所示。
物理内存 (MB) | 128 | 256 | 512 | 1,024 | 2,048 | 4,096 |
最小非分页池大小 | 4 | 8 | 16 | 32 | 64 | 128 |
最大非分页池大小 | 50 | 100 | 200 | 256 | 256 | 256 |
在未启用 Web 缓存时,512 MB 对于单处理器计算机来说应该足够了,而 1,024 MB 对于双处理器计算机来说也应该足够了,而 2,048 MB 足以支持双核双处理器计算机。这些内存空间也可以存储完整的内存工作集容量。
内存优化不正确的最关键证据是 \Memory\Pages/sec(测量每秒的硬件页面错误数)在峰值负荷期间很大(大于 10)。如果出现这种情况,第一步行动取决于是否启用了 Web 缓存:
1. | 如果禁用了 Web 缓存,则必须通过监视系统中所有进程使用的内存来确定是否需要更多的物理内存。下列性能计数器会为您提供一些帮助: \Memory\Pages/sec\Memory\Pool Nonpaged Bytes\Memory\Pool Paged Bytes\Process(*)\Working Set |
2. | 如果启用了 Web 缓存,应首先尝试将内存缓存大小降低到物理内存的 10%。如果硬件页面错误仍旧存在,则继续第一步。 |
ISA Server 2006 可以安装在 Microsoft Virtual Server 2005 R2 上。
由于承载 Virtual Server 的 Windows 操作系统无法由虚拟服务器上的 ISA Server 来提供保护,因此,不应该将 Virtual Server 环境中的 ISA Server 用在边缘防火墙方案中,
而且也不支持这种配置。而在其他方案中则可以安全地使用这一配置,例如:
• | 在 Virtual Server 上使用 ISA Server 来提供如正向代理、发布和缓存等 Web 代理服务的实际运行部署,可以由边缘防火墙(例如其他 ISA Server 计算机或阵列)提供保护。 |
• | 实验室部署 |
如果\Process\wspsrv\Virtual Bytes 性能计数器数值较高(如果为 1,800,000,000 (1.8?GB) 则表示可能存在问题),则可以考虑在 Virtual Server 2005 R2 上使用 ISA Server 而不用另行购买一台 ISA Server 计算机:
• | 定义虚拟服务器上承载的来宾操作系统数量。如果虚拟字节超过了 1.8 GB,则应考虑向计算机(已添加 2 GB 随机存取内存 (RAM))添加虚拟操作系统。 |
• | 向主机添加 RAM(为每个来宾操作系统添加 2 GB)。 |
• | 在服务器上安装 Microsoft Virtual Server 2005 R2。有关详细信息,请参阅 Microsoft Virtual Server 网站。遵照 Microsoft 帮助和支持上有关性能的建议来操作。 |
• | 安装来宾操作系统。 |
• | 在每个来宾操作系统上安装和配置 ISA Server。 |
• | 使用诸如基于域名系统 (DNS) 循环硬件的外部负载均衡器或 Windows 网络负载平衡 (NLB) 在 ISA Server 计算机之间分配流量。 |
针对在双核、双处理器 2.2 GHz(8 GB RAM)服务器上的安全 HTTP (HTTPS) 发布方案所进行的远程过程调用 (RPC) 的测量结果显示如下:
• | 一台主机上安装的单个 ISA Server 处理 40000 个并发连接需要使用约 2 GB 的虚拟内存。 |
• | 在 3 个虚拟操作系统上安装的 3 个 ISA Server 计算机处理 60000 个并发连接,而每个虚拟计算机仅使用 1.3 GB 的虚拟内存。可以将此模型扩展到更多虚拟计算机上(例如,4 个、 8 个,等等),具体取决于宿主服务器的 RAM 容量和处理能力。这些测试是在三台计算机上进行的。 |
• | 在这两种情况下 CPU 的使用率几乎是相同的。 |
网络连接上存在的每个网络设备都有其容量限制。这些设备包括客户端和服务器网络适配器、路由器、交换机,以及将它们相互连接起来的集线器。足够的网络容量意味着这些网络设备的任何一个都不会处于满负荷状态。监视网络活动对于确保所有网络设备的实际负荷低于它们的最高容量是必不可少的。
在两种一般情况下,网络容量会影响 ISA Server 性能:
• | ISA Server 使用 WAN 链路连接到 Internet。在大部分情况下,Internet 连接带宽设定了流量的上限。过度使用 Internet 链路可能在峰值流量期间导致性能下降。分支机构也符合这种情况,此时分支机构的 ISA Server 计算机通过速度较慢的链路连接到总部的 ISA Server 计算机上。 |
• | ISA Server 仅连接到 LAN。在此情况下,有一个支持最高流量需求的基础结构很重要。然而在大多数情况下,由于 100 Mbps 和 1-Gbps LAN 价格低廉,这并不是一个问题。 |
为了监视网络活动,请使用性能计数器:\Network Interface(*)\Bytes Total/sec如果其值高于任何网络接口最高带宽的 75%,则应考虑增加容量不足的网络基础架构的带宽。或者,考虑使用 ISA Server 2006 高级功能,详情请参阅本文档中的“BITS 缓存”和“HTTP 压缩”。
ISA Server 将磁盘存储用于:
• | 对防火墙活动进行日志记录 |
• | Web 缓存 |
如果两者都被禁用,或者如果没有流量,ISA Server 将不执行任何磁盘 I/O 活动。在典型的 ISA Server 设置中,日志记录功能处于启用状态,并被配置为使用 Microsoft SQL Server? 2005 Desktop Engine (MSDE 2005) 日志记录。对于大多数部署,单个磁盘足以满足最高的日志记录速度。如果启用了 Web 缓存,则必须按照本文档的“Web 缓存”中的说明仔细规划磁盘存储容量。
任何磁盘存储系统的限制因素都是每秒的物理磁盘访问量。该数量随这些访问的随机性和物理磁盘的转速而异。通常,该限制介于每秒 100 次到 200 次访问之间。用于监视磁盘访问速度的性能计数器是:\PhysicalDisk(*)\Disk Transfers/sec如果某个磁盘在一段持续的时间内达到了该限制,则系统速度会变慢,通过系统响应时间的延长就可以注意到这一点。为了消除该瓶颈,直接的解决方案是通过添加更多物理磁盘来降低磁盘访问量。
磁盘访问率高的另一个原因是硬件页面错误。有关此情况的故障排除信息,请参阅本文档的“Web 缓存”。
ISA Server 使用应用程序筛选器来执行应用层安全检查。应用程序筛选器是注册到特定协议端口的动态链接库 (DLL)。只要有数据包发送到此协议端口,它就会被传递给应用程序筛选器,筛选器将按照应用程序逻辑对其进行检查并根据策略来确定如何进行处理。如果没有为协议指定应用程序筛选器,数据将进行 TCP 状态筛选。在此级别,ISA Server 只检查 TCP/IP 标头信息。
一般来说,由于以下几个原因,应用层筛选比 TCP 状态筛选需要更多的处理操作:
• | 应用程序筛选器检查数据的负载,而 TCP 状态筛选功能只查看 TCP/IP 标头信息。应用程序筛选器可以对数据的负载执行其他操作(例如,查看负载和阻止负载),或者按照应用程序逻辑更改内容。 |
• | 应用程序筛选器在用户模式空间中运行。传输级筛选在内核模式下运行。这意味着经过整个操作系统网络堆栈传递数据的额外处理开销。 |
由于应用程序筛选器是防火墙处理扩展程序,它们可能会影响性能。我们建议:
• | 获取所使用的筛选器的性能信息,并尽可能对它们进行最大优化。一个例子是 HTTP Web 筛选器,它可以被配置为查看 HTTP 负荷并搜索特定的签名。启用此功能可以提供额外的处理,从而降低对 ISA Server 计算机的额外要求。 |
• | 在合适的情况下,可以考虑使用 ISA Server 规则来代替筛选器。例如,使用访问规则目标集的站点阻止功能可能要比执行相同功能的 Web 筛选器更有效。 |
• | 如果是开发筛选器,请将其优化到最佳性能。此建议适用于任何软件,特别是关键任务防火墙或代理服务器。 |
• | ISA Server 允许对相同的应用程序端口使用应用程序筛选和更低级别的 TCP 状态筛选,具体取决于源和目标网络。例如,您可以在应用层筛选 Internet 流量,而对于其他所有网络之间传递的流量使用传输筛选保护。 |
ISA Server 提供了两种主要的方法来对防火墙活动进行日志记录:
• | MSDE 日志记录。此方法是用于防火墙和 Web 活动的默认日志记录方法。ISA Server 将日志记录直接写入 MSDE 数据库,允许对所记录的数据进行联机高级查询。 |
• | 文件日志记录。通过此方法,ISA Server 按顺序将日志记录写入文本文件。 |
比较两种方法可以看出,MSDE 具有更多功能,但它也使用更多系统资源。具体来说,如果从 MSDE 日志记录切换到文件日志记录,可以预测处理器使用率总体上会提高 10% 到 20%。
MSDE 日志记录还会消耗更多的磁盘存储资源。对于每兆数据,MSDE 日志记录大约要访问磁盘两次。而文件日志记录,访问两次可以处理 10 MB 的数据。提高 ISA Server 性能的一种方法是从 MSDE 切换到文件日志记录。仅在由于处理器或磁盘访问满负荷而导致性能问题的情况下,才推荐使用此方法。
ISA Server 2006 Enterprise Edition 还提供了远程 SQL 日志记录功能,该功能可以将所有记录保存到一个集中管理的 SQL 数据库中。远程 SQL 日志记录所消耗的 CPU 资源介于 MSDE 和文件日志记录之间,它几乎不使用任何磁盘 I/O 操作。不过,远程 SQL 日志记录也会带来其他必须考虑的容量要求,因为所有的日志记录都要写入到中央远程数据库:
• | ISA Server 计算机和远程 SQL 数据库之间的网络连接必须使用专用的 GB 级带宽,以满足日志流量的容量要求。 |
• | ISA Server 计算机和远程 SQL 数据库之间的网络连接必须使用 Internet 协议安全 (IPsec) 来确保将日志记录发送到远程 SQL 数据库时日志记录的安全性。 |
• | 必须有足够的独立磁盘冗余阵列 (RAID) 硬件来支持几台 ISA Server 计算机的日志记录速度。 |
下表列出了三种 Internet 链路带宽的估计事务处理速度和日志带宽。
Internet 链路带宽 | 1 Mbps | 5 T1 (7.5 Mbps) | 25 Mbps | T3 (45 Mbps) | 90 Mbps |
每秒钟的 SQL 事务处理数 | 25 | 188 | 625 | 1,125 | 3,250 |
SQL 事务处理占用的带宽 | 92 KB/秒 (Kbps) | 700 Kbps | 2.3 Mbps | 4.2 Mbps | 12.1 Mbps |
对于较大的带宽,上表中的数字会线性增加。
ISA Server 支持多个部署和应用程序方案。以下几节对几个主要的方案及其性能特性进行了说明。
部署方案是指 ISA Server 计算机在公司内部网络中的位置。出于安全性和性能方面的考虑,经过多年的演变形成了几个常用的方案,以下几节从性能和容量的角度对各个方案做以介绍。
需要企业级容量的公司/组织可能会考虑部署 ISA Server 计算机作为其专用的 Internet 边缘防火墙,以充当所有公司客户端到 Internet 的安全网关。为了维护内部网络和 Internet 之间高达几百 Mbps 的吞吐量要求,可以配置 ISA Server 仅提供数据包级别的传输层筛选功能。
ISA Server 提供的更高的应用层筛选将在第二个防御层上启用,该防御层由后端防火墙 ISA Server 计算机组成。
企业规模组织的下一个防御阵线由几台 ISA Server 计算机构成,这些计算机部署为部门网络防火墙或后端网络防火墙,为出入受保护的局域网提供安全的入站和出站访问控制。已拥有防火墙基础架构的公司/组织可以将它们的高性能防火墙部署到 Internet 连接边界,而将复杂的应用程序层筛选转给局域网边界位置的 ISA Server 计算机来完成。这将允许公司/组织能够利用当前的高速 Internet 连接,而同时又能够发挥 ISA Server 2006 应用层筛选功能所提供的独特的保护级别的作用。
从性能的角度看,只需要部门防火墙来承担所有通过边界防火墙的一部分流量,从而能够运行占用更多资源的安全功能(如应用程序筛选器)。
可以使用 ISA Server 将分支机构网络安全地连接到使用站点对站点虚拟专用网络 (VPN) 连接的主办公机构。在这个部署中,将 ISA Server 放在分支办公机构,它既用作保护分支办公机构网络的防火墙,又用作将分支办公机构网络连接到主办公机构网络的 VPN 网关来使用。
通常,经传输层筛选的站点对站点 VPN 所耗用的每个流量单元的处理能力只有经应用层筛选的 Internet 访问的 25%。
在经传输层筛选的站点对站点 VPN 中,应用层筛选器不会检查流经该通道的流量。与其他任何流量一样,处理站点到站点 VPN 流量的应用层筛选功能根据不同的协议来启用。
Internet 和目前的公司网络内的大部分流量都是使用 HTTP。对很多协议的流量模式进行的分析表明,HTTP 对网络的性能有很高的要求。因此,典型的 Web 流量工作负荷模拟对于衡量任何防火墙的容量和性能特征来说,都是非常切合实际的。
验证网络性能的一个典型衡量指标是每个 TCP 连接交换的事务量。与其他协议相比,HTTP 的典型值(平均为 3 到 5)是较低的。
下表根据 Internet 链路带宽总结了用于在三种典型单计算机部署上支持 HTTP 流量的硬件推荐配置。
Internet 链路 | 最高 5 T1 (7.5 Mbps) | 最高 25 Mbps | 最高 T3 (45 Mbps) | 最高 90 Mbps |
处理器/核 | 1 | 1 | 2 | 2/2 |
处理器类型 | Pentium III550 MHz(或更高频率) | Pentium 4 2.0–3.0 GHz | Xeon 2.0–3.0 GHz | Xeon 双核 AMD 双核 2.0–3.0 GHz |
内存 | 256 MB | 512 MB | 1 GB | 2 GB |
磁盘空间 | 150 MB | 2.5 GB | 5 GB | 10 GB |
网络接口 | 10/100 Mbps | 10/100 Mbps | 100/1000 Mbps | 100/1000 Mbps |
上表中的要求针对的是默认的 ISA Server 2006 安装设置,一个策略配置包含数百条规则。这其中包括所有默认的应用程序和 Web 筛选以及 MSDE 日志记录。以下内容适用于上表:
• | Internet 链路带宽。带宽数据适用于工作负荷要求苛刻的情况,在这种情况下,ISA Server 2006 被用作提供全部 HTTP 应用程序层筛选的透明 Web 代理。ISA Server 充当正向或反向 Web 代理,可以使吞吐量加倍,这意味着用于 T3 带宽的最低推荐配置为单 Pentium 4 处理器计算机,而对于两个 T3 连接则使用双处理器计算机。有关各种 Web 代理方案之间的性能差异的详细信息,请参阅本文档的“代理方案”。 在仅需要状态筛选(不需要更高的应用层筛选)的部署中,推荐的硬件配置可达到 LAN 线速。有关详细信息,请参阅本文档的“状态筛选”。 在启用 Web 缓存的情况下,根据字节命中率可将 Internet 链路带宽降低 20% 到 30%。有关详细信息,请参阅本文档的“Web 缓存”。 |
• | 处理器。数据是通过在数千个 IP 地址上模拟 HTTP 流量得来的,这些流量造成的负荷使 ISA Server 处理器的使用率达到 70% 到 80%。 |
• | 处理器类型。也可以考虑使用模拟 IA-32 指令集的处理能力相当的其他处理器。 |
• | 内存。内存要求不考虑 Web 缓存需要的内存空间。有关 Web 缓存所需的更多内存方面的信息,请参阅本文档的“Web 缓存”。 |
• | 磁盘空间。磁盘空间要求指出了推荐用于 ISA Server 日志的空闲磁盘空间量。有关规划 Web 缓存的磁盘空间要求的信息,请参阅本文档的“Web 缓存”。 |
• | 网络接口。网络接口要求针对的是内部网络(未连接到 Internet 的网络)。 |
ISA Server 使用其内置的 Web 代理筛选器来确保 HTTP 流量的安全。此应用程序筛选器支持三种不同的方案:用于保护公司用户对 Internet 的出站访问的正向代理和透明代理,以及用于保护 Internet 用户对内部网站的入站访问的反向代理。接下来的几个小节将从性能角度对每种方案加以说明,并解释如何使用缓存来提高性能。
本节提供正向代理、透明代理和反向代理的方案。
在正向代理中,客户端的 Web 浏览器能够意识到代理的存在。例如在 Microsoft Internet Explorer? 中,这是通过在“Internet 选项”中设置“使用代理服务器”或“自动检测设置”来实现的。当 Web 客户端检测到代理时,会直接打开到代理的连接,向代理请求 Internet 上的位置(例如,Internet Explorer 在发送 HTTP 1.1 请求时会打开两个到代理的连接)。当 ISA Server 接收对服务器的请求时,会打开一个到该服务器的连接,并将该连接再次用于其他客户端向同一服务器发送的其他请求。这样就形成了一个星型连接拓扑。
这一方案的性能优势在于,它允许大量重用连接,从而尽可能地减少和降低打开的连接数和连接速率。
在透明代理中,客户端的 Web 浏览器无法检测到代理的存在。浏览器会认为自己是直接路由到 Internet 上的服务器的,中间没有代理。具体来说,Web 客户端通过打开与目标网站的连接来直接访问 Internet 服务器。这样导致连接速率显著提升,因为在用户请求某个新的服务器上的页面后,Web 浏览器将关闭其与当前 Web 服务器的连接,然后打开与新的 Web 服务器的新的连接。这是透明代理的典型特征,这对 ISA Server 的性能会有所影响。通常,透明代理中的客户端连接速率大约比正向代理中的高三倍,因此每个请求所使用的处理器周期约为后者的两倍。
透明代理是一种很流行的方案,因为它非常容易部署,特别适用于向不同类型的客户端提供服务的 Internet 服务商 (ISP)。由于这个原因,此方案能够显著提升性能。
一般情况下,与正向代理相比,用于透明代理的 ISA Server 需要两倍的 CPU 资源量。
反向代理或 Web 发布的工作方式与正向代理相同,只是反向代理的方向是入站而不是出站。在该方案中,ISA Server 充当供 Internet 上的客户端访问的网站。客户端并不知道它们正在访问的网站实际上是一个代理。与转发代理相同,由于有效地重用了连接,连接的数量以及单位时间内的连接数达到了最小。反向代理用于 Web 服务器的安全发布,如 Microsoft Internet 信息服务 (IIS)、Microsoft Office Outlook? Web Access 2003 和 Microsoft Office SharePoint? Portal Server 这些服务器的发布,等等。
从性能的角度看,反向代理与转发代理的特性类似。主要的差别是,反向代理情况下会有大量的通信流由 ISA Server 流向 Internet 用户,因此需要高带宽的 Internet 连接。正如下一节中给出的解释,在启用 Web 缓存的情况下,转发代理和反向代理对于性能会有不同的影响。
Web 缓存是在所有 Web 代理方案中用于改善 ISA Server 性能的一项功能。但是,对出站方案(正向代理和透明代理)启用缓存与对入站反向代理方案启用缓存时,对于性能的改善会有不同的影响。
正向(透明)缓存和反向缓存之间的主要差异在于缓存的目的。正向(和透明)缓存旨在通过把经常访问的可缓存内容放在靠近用户的地方,从而节省 Internet 带宽成本和缩短响应时间。反向缓存用于对后端 Web 服务器进行卸载。反向缓存对于响应时间没有影响,对于没有缓存的对象甚至会增加延迟时间。
就节省而言,正向缓存通过从缓存中提供已访问过的内容来减少对 Internet 上的 Web 服务器的访问次数,因此可以节省所需要的 Internet 链路带宽。例如,如果缓存字节的命中率为 20%,且内部链路的吞吐量峰值为 10 Mbps,则 Internet 链路的吞吐量峰值为 8 Mbps。
缓存对象命中率是在代理所提供的全部对象中,从缓存中提供的那部分对象所占的比率。同样,缓存字节命中率是在代理提供的全部字节中,从缓存中提供的那部分字节所占的比率。一般的对象命中率平均值约为 35%,字节命中率约为 20%。
通过使用反向缓存可以将 Web 服务器进行合并,从而同时降低硬件和管理成本。例如,如果网站的数据中有 80% 属于静态可缓存的数据,并且动态对象所需的 CPU 周期是静态对象的 4 倍,则利用反向代理可将使用的 Web 服务器数量减少一半。
假定静态对象需要使用 X 个 CPU 周期,动态对象则需要 4X 个周期。如果 100 个请求中有 80 个是静态的,则 100 个请求所需要的周期总数是 80X + (100-80)4X = 160X,则用于静态内容的请求的 50% 将由 ISA Server 缓存来满足。
正向缓存和反向缓存的另一个区别是缓存的工作集的数量。在反向缓存中,客户端工作集的大小没有限制,但服务器工作集只包含几个网站和相对较少的对象。在大部分情况下,可以将 ISA Server 设计为具有合理数量的内存和磁盘空间,使其能够在缓存中存储所有驻留的可缓存内容,从而仅仅把动态的非缓存内容指向驻留的 Web 服务器。更可取的做法是,所有缓存都可以保存在内存中并通过内存提供服务。
在正向缓存中,服务器空间包含无限个网站和 Web 对象,因此缓存工作集是无限的。为了存放这么大的工作集,必须定义很大的磁盘缓存。本文接下来的小节将说明如何为正向缓存和反向缓存规划和优化 Web 缓存容量。
在正向缓存中,通过以下公式使用对象命中率和峰值 HTTP 请求速率来确定必需的磁盘数量:
Number_of_Disks = (Peak_request_rate X Object_hit_ratio) / 100
例如,如果峰值请求速率为每秒 900 个请求,对象命中率为 35%,则需要四个磁盘。
上述公式中的数字 100 是经验值,表示一般运行的物理磁盘(每分钟 10,000 转)每秒可以提供 100 个 I/O 操作服务。如果磁盘的转速快到每分钟 15,000 转,则每分钟可以提供 130-140 个 I/O 操作。
推荐使用相同类型、相同容量的专用磁盘。如果使用 RAID 存储子系统,应将其配置为 RAID 0(无容错)。推荐使用小磁盘,最好不超过 40 GB。
优化缓存内存更加复杂。在缓存方案中,内存用于:
• | 未决的请求对象。未决的请求对象的数量与 ISA Server 计算机的客户端连接数量成比例。在大多数情况下,对象的数量低于客户端连接数的 50%。每个未决请求需要约 15 KB 的空间。对于 10,000 个并发连接,Web 代理内存工作集为未决的请求对象所分配的空间不超过 50% × 10,000 × 15?KB = 75?MB。不过,在通过 HTTP 或 HTTPS 发布方案传送的 RPC 中,所有连接都有未决的请求对象。按照前面的例子,为未决的请求对象所分配的空间总计为 100% × 10,000 × 15?KB = 150?MB。 |
• | 缓存目录。该目录中包含对每个缓存对象的一个 48 字节的条目。缓存目录的大小直接由缓存和平均响应大小来确定。例如,存放 7,000,000 个对象(每个对象平均 7 KB)的 50 GB 的缓存需要的空间为 48 × 7,000,000 = 336?MB。 |
• | 内存缓存。使用内存缓存的目的是直接从内存满足经常访问的缓存对象的请求,从而减少磁盘缓存读取。但是,由于可缓存的内容量在正向缓存中是没有限制的,因此内存缓存大小对于性能的影响有限。 |
默认情况下,内存缓存为总物理内存的 10%,而且是可以配置的。通常,我们推荐使用默认设置,除非出现硬页面错误。硬件面错误会导致性能急剧降低。使用缓存的情况下,要解决此问题,最简单的做法是降低内存缓存的大小。
考虑到以上信息,通过下列过程来优化缓存内存大小:
1. | 按照上一节的说明来优化磁盘缓存大小。 | ||||||||||
2. | 估计以下各项所需的内存总数:
| ||||||||||
3. | 监视内存使用率并相应地更改内存缓存大小。信息性性能计数器包括: \ISA Server Cache\Memory Cache Allocated Space (KB) \ISA Server Cache\Memory URL Retrieve Rate (URL/sec) \ISA Server Cache\Memory Usage Ratio Percent (%) \ISA Server Cache\URLs in Cache \Memory\Pages/sec \Memory\Pool Nonpaged Bytes \Memory\Pool Paged Bytes \Process(WSPSRV)\Working Set \TCP\Established Connections |
在反向缓存中,与正向缓存相比,工作集大小要小得多,以至于可以将其全部放在内存中。工作集的大小是指缓存所驻留的网站可缓存对象的总量。为了能够存放所有可缓存的对象,而且考虑到磁盘分配中出现的碎片和缓存刷新策略,推荐将磁盘缓存和内存缓存的大小设置为工作集大小的大约两倍。例如,500 MB 的工作集需要使用 1,000 MB 的磁盘缓存以及 1,500 MB 的内存,并将内存缓存大小设置为 66%。
由于大多数缓存的读取是从内存缓存中满足,因此磁盘上的 I/O 频率较低。大多数情况下,单个物理磁盘足够了,不会形成瓶颈。
使用 /3GB Boot.ini 开关
对于内存超过 2 GB 的大型系统,Windows Server 2003 和 Windows 2000 Advanced Server 提供了 4GT RAM 优化功能。此功能将进程内存空间划分为 3 GB 用于应用程序内存、1 GB 用于系统内存。此功能使得进程可以在用户空间中利用超过 2 GB 的 RAM,并通过在 Boot.ini 文件中添加开关 /3GB 将其启用(有关详细信息,请参阅 Microsoft 知识库中的文章 Q171793 -“有关应用程序使用 4GT RAM 优化信息”)。
此功能可能对 ISA Server 有好处,尤其是对于承载大型网站的反向缓存。不过,使用此功能会减少未分页池的最大大小(减小到 128 MB 而不是 256 MB),因而会减少最大并发 TCP 连接数。
ISA Server 2004 Service Pack 2 (SP2) 引入了“后台智能传输服务”(BITS),ISA Server 2006 中也包括 BITS,它可以对有关 Windows Update 的 HTTP 范围请求进行缓存。.BITS 可以显著地节省带宽用量,并能够缩短低带宽部署的情况下由于下载更新内容而带来的延迟,在通过 Web 进行更新的需要日益增长的背景下,这显得非常重要。
通过测量 BITS 缓存性能获得了以下信息:
• | BITS 缓存在月度更新过程中将整体命中率提高了一倍,从 10% 增加到 20%。在月度更新期间,总流量节省了 18%。 |
• | 由于平均每个连接具有极高的吞吐量和命中率,因此,使用 BITS 处理后的流量的执行效率要比其他 Web 流量高。例如,在同样的硬件上,与未经 BITS 处理的 Web 流量相比,BITS 缓存在相同的处理器利用率的情况下可以多提供 3 倍或 4 倍的数据位。为 Windows Update 启用 BITS 缓存后,对于与 Windows Update 无关的流量没有性能方面的负面影响。 |
ISA Server 2006 提供了“超文本传输协议”(HTTP) 压缩功能。在配置了 HTTP 压缩之后,ISA Server 可对内容进行压缩,以节省有限的带宽。这在某些情况下很有用,例如,主办公机构的代理将 Internet 请求直接路由到 Internet,分支办公机构通过带宽有限的网络将它们的请求由主办公机构发送出去。该功能使用为人熟知的压缩算法 (GZip) 来压缩 HTTP 数据,压缩比会根据目标数据类型而有所不同(默认情况下,只对基于文本的数据进行压缩)。
当 ISA Server 的 Web 筛选器检查传入的压缩内容时,会对压缩内容进行解压缩。在解压缩时,会将内容作为解压缩后的文本存储在缓存中。如果 ISA Server 接受了对缓存内容的请求,它会在发送数据前重新将其压缩,这会增加响应时间。
测量通过带 50 微秒 (msec) 延迟的 56 Kbps 线路的 HTTP 压缩,将总部的 ISA Server 计算机连接到分支办公机构的多台 ISA Server 计算机,传送总计为 96 Mbps 的(未压缩)数据,结果如下:
• | HTTP 压缩对于慢速网络有重要的作用。它将网络的利用率提高了 28%,因而提高了总的系统吞吐量。 |
• | 总部和分支办公机构之间的延迟缩短为原来的 1/15。 |
• | 在测试系统(双核 Xeon 2.4 GHz)上启用 HTTP 压缩增加了 15% 的 CPU 使用量。 |
执行 Web 身份验证的方法有许多种,每一种方法对性能会有不同的影响。下表总结了每一种方法的优点和缺点。
身份验证方案 | 强度 | 执行身份验证的时间 | 每请求的开销 | 每批处理的开销 |
Basic | 低 | 每次 | 低 | 无 |
Digest | 中 | 每次/计数 | 无 | 高 |
NTLM | 中 | 每连接 | 无 | 高 |
NTLMv2 | 高 | 每连接 | 无 | 高 |
Kerberos | 高 | 每连接 | 无 | 中 |
SecurID | 高 | 每浏览器会话 | 无 | 中 |
RADIUS(按请求) | 高 | 每请求 | 高 | 无 |
RADIUS(每超时,默认) | 中 | 每次 | 低 | 无 |
从性能角度来看,没有每请求的开销并且每批处理的开销较低的身份验证方案表现最佳。确定使用哪个身份验证方案取决于强度和基础结构。
此外,Web 代理身份验证可以在 Web 代理侦听器级或在规则级上进行配置。只有当所有 Web 访问都需要身份验证时才应选择侦听器级。否则,应选择规则级别,这意味着只在必要时按照规则来执行身份验证。
与应用程序筛选器类似,Web 筛选器也会对性能造成影响,具体取决于筛选器所执行的操作。ISA Server 整合了几种执行特定任务的 Web 筛选器。在这些筛选器中,最消耗 CPU 的是 HTTP 筛选器和链路转换筛选器。
HTTP 筛选器检查每个 Web 请求和响应,来确定它们是否符合常规的 HTTP 协议用法。该筛选器默认情况下是启用的,其默认配置提供了对 HTTP 报头及 URL 的大小限制。其他可用的功能包括按方法、扩展名、报头和 HTTP 负载签名来执行拦截。这些功能在选中的情况下对于性能没有影响,但签名拦截除外,该功能需要 10% 以上的 CPU 周期。推荐使用 HTTP 筛选器来保护 Web 流量。
链路转换专门用于 Web 发布方案。它查看 HTML 响应正文,搜索绝对超链接,将其改为指向 ISA Server 计算机。默认情况下,链路转换扫描 HTTP 报头和响应正文,因此对于性能会有明显的影响。在启用了正文扫描时,它默认只扫描 HTML 内容,从而导致 CPU 使用率总体上增加 15%。
通过使用安全套接字层 (SSL),ISA Server 提高了各种 Web 内容发布的安全性。ISA Server 与 SSL 结合使用,实现了对发布的网站的专用访问,对于公司用户,则提供了对各种 Internal 网络资源(如电子邮件、共享网站、终端服务等等)的安全访问。
SSL 属于 TCP 协议,使用端口 443。SSL 也称为“安全 HTTP”(HTTPS),因为它定义了安全打包、身份验证和 HTTP 内容加密。
从性能的角度看,SSL 加密和解密在常规的 HTTP 处理之外,创建了一个新的处理层。此处理层包含以下两个主要的 CPU 术语:
• | SSL 握手。在创建 TCP 连接之后,SSL 使用公钥基础结构 (PKI) 在端点之间创建安全上下文。这称为 SSL 握手。就总的网络流量来讲,SSL 握手占用的处理能力与连接比率(每秒测量的连接数)成比例。 |
• | 加密。创建安全上下文之后,一个端点使用上下文利用对称加密算法来加密或解密 HTTP 内容。针对 HTTP 数据的每个字节执行此处理过程。因此,它所占用的处理器周期数与总的网络吞吐量成比例(按每秒的兆位数来测量)。 |
总吞吐量和连接比率之间的比确定了为每个连接所处理的平均位数。此比率定义为“位数/连接”,实际上,每个应用程序都有关于此比的特征值。
以下是一些示例。
Outlook Web Access
当 Web 客户端连接到 Outlook Web Access Exchange Server 的前端服务器时,它会加载 Outlook Web 页面,其中包含用户界面图标和当前邮箱中的邮件的报头。随后,用户执行的任何操作(如打开、发送、移动到文件夹)会生成新的平均传输 10 到 20 KB 的 HTTP 连接。在汇集了多个用户的 Outlook Web Access 行为之后,Web 客户端通常会创建一个相对较低的“位数/连接”值(如每个连接 100 千位)。
使用 Outlook 2003 缓存 Exchange 模式通过 HTTP 使用 RPC
通过 HTTP 的远程过程调用 (RPC) 是 Microsoft Exchange Server 2003 的一项功能,它可以使 Outlook 2003 客户端从 Internet 访问公司内部网络的 Exchange 服务器。当连接到 Exchange Server 时,在缓存 Exchange 模式下工作的 Outlook 2003 客户端首先会通过本地缓存文件同步邮箱内容。同步过程完成后,不时地会建立连接来传送新邮件。对于使用高使用率配置文件的知识型员工而言,同步操作会通过少量连接来传送许多数据字节,因此每个连接典型的总位数是相当高的(如每个连接 500 千位)。
通过 HTTP 客户端的每个 RPC 大约会创建 10 个连接,因此,在规划部署时还应该考虑总连接数(客户端数 x 10)。
网站
网站的设计和实施有多种方式。因此,网站没有典型的“位数/连接”值。不过,在网站为请求提供服务之后,可以测量每个连接的总位数。实际上,网站的“位数/连接”具有中等值(每个连接的位数在 100 到 500 千位之间)。
在对 ISA Server 部署安全 Web 发布时,External 网络中的安全 Web 客户端可以连接到 SSL 端口。SSL 桥接是 ISA Server 的一项功能,通过它可以指定 ISA Server 如何与发布的后端 Web 服务器通信。使用此功能可以从以下两种桥接类型中进行选择:
• | SSL 到 SSL 桥接。在此类桥接中,ISA Server 通过 SSL 访问后端服务器。ISA Server 与后端服务器执行单独的 SSL 握手,且对于它从后端服务器接收或发送到后端服务器的每个数据包必须使用加密。 |
• | SSL 到 HTTP 桥接。在此类桥接中,ISA Server 通过非加密的 HTTP 以明文方式访问后端服务器。 |
SSL 到 SSL 桥接可增强 Internal 网络的安全,但由于要对在 ISA Server 和后端服务器之间传输的每一个数据包进行两次加密,从而增加了处理成本。SSL 到 SSL 桥接的成本比 SSL 到 HTTP 桥接多出约 10%。
要确定可支持网络流量峰值负载的 ISA Server 计算机的处理容量,必须首先测量网络流量每连接的典型千位值,然后测量整体总流量。使用以下步骤来确定这些数据:
1. | 使用系统性能监视工具来监视两个小时的服务器活动峰值期间每个应用程序服务器的网络流量。收集以下计数器数据: \Network Interface\Bytes Total/sec。这是由 ISA Server 发布的接口的计数器。使用平均值作为该期间的平均吞吐量。此值也用于计算整体总流量。\TCPv4\Connections Active。此计数器的值是在监视会话期间创建的总连接数。要确定这一期间每秒钟的平均连接数,需要对在整个期间统计的最大值和最小值求平均值。计算每个连接的千位数,具体如下:每个连接的千位数 =(每秒的总位数 × 8/1000)/(每秒的连接数)。 | ||||||||||||||||||||||||
2. | 将每个连接的总平均千位数确定为每台应用程序服务器每个连接的加权平均千位数。每台服务器的权值是每台服务器的吞吐量除以所有服务器的总吞吐量。 | ||||||||||||||||||||||||
3. | 通过增加每台服务器上测定的流量来确定整体总流量。 | ||||||||||||||||||||||||
4. | 根据在步骤 2 中测定的每个连接的千位数,使用下表确定 ISA Server 服务器处理的每兆位 SSL 流量所需的兆周期数。
| ||||||||||||||||||||||||
5. | 若要确定支持整体总流量所需的处理器速度,请将步骤 4 中的每兆位兆周期数乘以步骤 3 中测定的总吞吐量。 ![]() 由于 ISA Server 配置、方案和硬件平台的不同,前面引用的数字仅作为估计之用。对于 Internet 链路带宽大于 10 Mbps 的部署情况,我们建议进行试运行测试,以验证这些估计数据。 |
例如,假设步骤 2 中计算的每个连接的速率(千位)是 200,总吞吐量合计为 15 兆位,且您需要 ISA Server 执行 SSL 到 SSL 桥接。在上表中,单个处理器需要每兆位 96 个兆周期或 96 × 15 = 1440 个兆周期(在每秒 15 兆位时)。一个 2.4 GHz 的 Intel Pentium 4 处理器就足以处理此负载,并且在峰值吞吐量时利用率只有 1440 / 2400 = 60%。配置了两个 Intel 2.4-GHz Pentium 4 处理器的双处理器计算机需要每兆位 120 个兆周期或 120 × 15 = 1800 个兆周期(在每秒 15 兆位时),并且在峰值吞吐量时利用率只有 1800 / (2 × 2400) = 38%。
下表显示了 2.4-GHz 处理器在最大推荐利用率 (80%) 时可处理的流量(兆位)。
每个连接的千位数 | 100 | 200 | 500 |
1 个处理器,SSL 到 HTTP | 21 | 25 | 28 |
1 个处理器,SSL 到 SSL | 16 | 20 | 23 |
2 个处理器,SSL 到 HTTP | 30 | 37 | 42 |
2 个处理器,SSL 到 SSL | 27 | 32 | 37 |
此表尤其适用于仅使用 ISA Server 处理 SSL 流量的部署情况。如果计划针对 SSL 和未加密的 HTTP 流量部署 ISA Server,则可以根据将每种方案的流量乘以每兆位兆周期数,通过计算加权平均兆周期数来估计所需的处理能力,如下表所示。
方案 | 透明代理 | 正向代理 | SSL 隧道 |
1 个处理器 | 74 | 37 | 30 |
2 个处理器 | 86 | 43 | 35 |
例如,假设要在边缘防火墙方案中部署 ISA Server,这种情况下,每秒 20 兆位峰值流量中的 40% 用于透明代理,35% 用于正向代理,25% 用于每个连接 200 千位的“SSL 到 SSL”。ISA Server 在单处理器计算机中处理此流量所需的兆周期总数为:
兆周期数 = 每秒 20 兆位 × (74 × 40% + 37 × 35% + 96 × 25%) = 1331
一个 2.4 GHz 的 Intel Pentium 4 处理器就足以处理此负载,并且在峰值吞吐量时利用率只有 1331 / 2400 = 55%。双处理器计算机需要 20 × (86 × 40% + 43 × 35% + 120 × 25%) = 1589 个兆周期,这种情况下,在峰值吞吐量时两个 2.4-GHz Intel Pentium 4 处理器的利用率是 1589 / (2400 × 2) = 33%。
状态筛选功能在传输级检查数据,并在 ISA Server Firewall Packet Engine 内核模式驱动程序中实现。状态筛选功能可计算源 IP 地址和目标 IP 地址、TCP/UDP 标记端口号和选项以及 Internet 控制消息协议 (ICMP) 类型和代码。它使用这些信息来确定连接状态,从而允许符合此状态的数据包,拒绝不符合此状态的数据包。
与应用程序级筛选所需要的资源相比,状态筛选只需少量的资源。在使用 Web 代理筛选功能时使用 75% CPU 能力的相同 HTTP 流量,在使用状态筛选时仅使用 8% 的 CPU 能力(性能提高近 10 倍)。
虚拟专用网络 (VPN) 包括两个基本方案:远程访问 VPN 和站点对站点的 VPN。这两种方案都可以使用多种协议,并可与应用程序筛选或有状态筛选功能结合使用。基于 Internet 协议安全 (IPsec) 的协议还可以利用许多网络适配器中可用的硬件卸载功能来提高处理器总体利用率。有些协议可以利用压缩来提高吞吐量或节省带宽。正如接下来的小节介绍的,所有这些功能都会影响性能。
从 Internet 拨入的远程客户端可使用 VPN 远程访问来访问其公司网络。在远程访问中使用的协议是点对点隧道协议 (PPTP) 和 Internet 协议安全 (IPsec) 上的第 2 层隧道协议 (L2TP)。这两种协议都支持压缩,推荐使用压缩,因为压缩可以节省带宽和加密所需的处理能力。
要确定 ISA Server VPN 服务器是否具有足够的容量,首先需要计算 ISA Server 计算机需要支持的并发远程连接的最大数量。例如,如果预计组织有 5000 名员工,并且同时建立远程连接的员工不超过 5%,则需要处理 250 个并发 VPN 远程访问连接。
下表指出了每种硬件平台支持的并发 VPN 远程访问连接的最大数量。这些数字假设 ISA Server 的默认设置整合了 Web 代理筛选、MSDE 日志记录以及同时用于 PPTP 和 IPSec 上的 L2TP 协议的压缩功能。
协议 | 连接和带宽 | Pentium 4 3 GHz 单处理器 | Xeon 3 GHz 双处理器 | 双核 Xeon 2800 GHz 双处理器 |
PPTP |
|
|
|
|
| 连接 | 600 | 760 | 2,200 |
| 带宽 | 9 Mbps | 11.4 Mbps | 33 Mbps |
L2TP/IPSec |
|
|
|
|
| 连接 | 700 | 850 | 2,450 |
| 带宽 | 10.5 Mbps | 12.75 Mbps | 63.75 Mbps |
以下内容适用于上表:
• | 带宽数据是必需的 Internet 链路带宽。由于压缩原因,实际带宽是上表所示数据的两倍。 |
• | 带宽数据假设每个连接的平均吞吐量为 30 Kbps,大致相当于 56 KB 的拨号连接。 |
在能够从更高程度上信任 VPN 的部署中,应用程序级筛选功能可能被禁用,从而可提高总容量,并放松安全级别。下表显示了禁用 Web 代理筛选器时的相关数据。
协议 | 连接和带宽 | Pentium 4,3 GHz,标准版 | 双 Pentium 4,3 GHz 处理器,企业版 | 双核 Xeon 2800 GHz 双处理器 |
PPTP |
|
|
|
|
| 连接 | 1,000 | 2,500 | 2000 |
| 带宽 | 15 Mbps | 38 Mbps | 30 Mbps |
IPsec 上的 L2TP |
|
|
|
|
| 连接 | 1,000 | 2,320 | 2,000 |
| 带宽 | 15 Mbps | 35 Mbps | 30 Mbps |
以下内容适用于上表:
• | 单颗 Pentium 4 3-GHz 处理器在 ISA Server 2006 Standard Edition 中可达到的最大并发连接数为 1000。在 ISA Server 2006 Enterprise Edition 中没有这种限制。ISA Server Enterprise Edition 应运行于 Windows Server 2003 Enterprise Edition,因为 Windows Server 2003 Standard Edition 有最多 1000 个的连接限制。 |
• | 许多网络接口适配器提供的 IPsec 卸载硬件可能会导致吞吐量的值增加 20% 到 25%。但请注意,对于 Windows Server 2003,Ipsec 卸载仅适用于 100 Mbps 网络适配器。 |
• | 从上表可以看出,双核体系结构的最大连接数和吞吐量要低于双处理器体系结构。这与处理器关联 (processor affinity) 有关:当一个处理器核心的使用率为 85%,其他三个核心的使用率为 15% 时,CPU 就会出现瓶颈问题。采用中断关联的方法(使用 Windows Server 2003 资源工具包工具提供的 Infiltr.exe)可以解决这一问题。 |
在建立站点到站点的 VPN 连接时,从性能和容量的角度看,主要有两种选择。一种选择是采用 PPTP 或 IPsec 上的 L2TP。这些协议提供应用程序流量压缩,从而可通过站点到站点的链路进行传输的吞吐量会加倍。例如,通过 PPTP 或 L2TP 隧道发送一个 2 MB 的文件实际上仅传递了 1 MB。另一种选择是使用 IPsec 隧道,该隧道没有整合压缩功能。因此与 IPsec 隧道相比,PPTP 和 IPsec 上的 L2TP 都可节省 50% 的站点到站点的吞吐量。
当 Web 代理筛选器被禁用时,对于 15 Mbps 的应用程序流量,采用 IPsec 上的 L2TP 需要单颗 Pentium III 750-MHz 处理器。由于进行了压缩,单向传递该流量仅需 7.5 Mbps 的链路容量。单颗 Pentium 4 3-GHz 处理器可处理的应用程序流量高达 90 Mbps,但需要 T3 链路容量 (45 Mbps)。当启用了 Web 代理筛选器时,一颗 Pentium III 750-MHz 处理器可维持 7 Mbps 的应用程序流量,但需要 3.5 Mbps Internet 链路带宽;而单颗 Pentium 4 3-GHz 单处理器则可处理 34 Mbps 应用程序流量,对应所需链路带宽为 17 Mbps。双 Xeon 3-GHz 处理器可处理 53 Mbps 应用程序流量,需要 26.5 Mbps Internet 链路带宽。在 CPU 使用情况相同的条件下,PPTP 可多处理大约 15% 到 20 % 的吞吐量。
第二种选择是使用 IPsec 隧道,该隧道不支持压缩,这意味着 Internet 链路流量与应用程序流量是相同的。使用状态筛选配合工作(禁用 Web 代理筛选器)时,IPsec 隧道能够在单颗 Pentium III 550-MHz 处理器上处理 10 Mbps,在单颗 Pentium 4 3-GHz 处理器上则可以处理 52 Mbps。当启用了 Web 代理筛选器时,单颗 Pentium III 处理器、单颗 Pentium 4 处理器和双 Xeon 处理器平台的吞吐量数据分别为 4 Mbps、18 Mbps 和 30 Mbps。
下表总结了 CPU 使用率为 75% 时支持的实际 Mbps 的结果(括号内的数字表示未压缩的流量)。
站点到站点 VPN | 筛选 | Pentium 4,3 GHz | Pentium 4,3 GHz 双处理器 | 双核 Xeon 2800 GHz 双处理器 |
IPsec 上的 L2TP(已压缩) |
|
|
|
|
| 禁用 | 45 (90) | 71 (142) | 55 (110) |
| 启用 | 17 (34) | 27 (53) | 25 (50) |
PPTP 上的 IPsec(已压缩) |
|
|
|
|
| 禁用 | 52 (104) | 81 (162) | 88 (176) |
| 启用 | 20 (39) | 31 (61) | 35 (70) |
IPsec 隧道 |
|
|
|
|
| 禁用 | 52 | 87 | 94 |
| 启用 | 18 | 30 | 33 |
许多网络接口适配器提供的 IPsec 卸载硬件可能会导致吞吐量的值增加 20% 到 25%。
许多组织通常是由一个总部和多个分支机构组成。在这种配置中,多个分支机构的计算机都连接到总部的同一台计算机。这就是通常所说的星形拓扑。
对这种情况的测量显示,总部的单台 ISA Server 计算机最多可支持 60 台分支机构计算机的并发连接,流量传输速率可达到 200 Kbps。测试采用的硬件配置为 AMD 2.4?GHz 四核处理器,2 GB 内存。VPN 隧道使用 IPsec 上的 L2TP 创建。
ISA Server 系统可以采取下列几种方法进行扩容:
• | 使用高级网络交换硬件设备。这些交换机通常称为 L3、L4 或 L7 交换机(第 3 层、第 4 层或第 7 层),因为它们基于不同网络层提供的各种信息来提供交换功能。L3 交换基于数据包层的信息 (IP),L4 基于传输层的信息 (TCP),L7 基于应用程序数据(HTTP 报头)执行交换。这些层提供的信息可以根据源 IP 地址和目标 IP 地址、源 TCP 端口和目标 TCP 端口、URL 以及内容类型提供高级负载平衡。由于交换机是作为硬件设备实现的,因此具有相对较高的吞吐量,并且可用性和可靠性很高,但同时也较为昂贵。大多数交换机可以检测到服务器停机,从而启用容错。 |
• | 使用 DNS 循环名称解析。在域名系统 (DNS) 中,一个服务器群集可以被赋予相同的名称。DNS 通过循环该列表来响应对该名称的查询。这是一种低成本(无成本)的解决方案,但是有些缺点。问题之一在于负载不一定要均匀分布于群集中的服务器之间。另一个问题是它不提供容错。 |
• | 使用 Windows 网络负载平衡。网络负载平衡 (NLB) 是通过与群集中所有服务器共享一个 IP 地址来实现的,所有服务器均可查看发送到此 IP 地址的所有数据。但是,根据某个共享的哈希函数,每个数据包都仅由一台服务器提供。NLB 是在操作系统级别上实现的。它可以提供均匀分配的负载平衡,并支持容错(群集中的其他服务器可检测到发生故障的服务器,并将故障服务器的负载分散到其他服务器间)。但是,它需要一定的 CPU 处理开销(对于常见的 ISA Server,约为 10% 到 15%),并对群集的成员数量有一定限制(推荐的最大成员数量约为 8 台计算机)。有关如何部署 NLB 的更多信息,请参阅 Microsoft TechNet 网站的“Microsoft Internet Security and Acceleration (ISA) Server 2006 的网络负载平衡集成概念”。 |
• | 使用缓存阵列路由协议。对于缓存情况,ISA Server 支持缓存阵列路由协议 (CARP),它是一个缓存负载平衡协议。该协议不仅在服务器间分布负载,而且还可以分布缓存的内容。每个请求被发送给群集中某台特定的计算机,从而后续操作均由该计算机来完成。 |
由于 ISA Server 保留了所通过的每个数据流的状态,因此所有扩容方法均必须支持“粘性”,以便所有数据都能够通过 ISA Server 计算机。
扩容可用于增加系统的容量。每种扩容方法都是瑕瑜互见的。对于 ISA Server 而言,优点或缺点取决于具体的方案。在决定使用哪种扩容方法时,请考虑以下因素:
• | 性能因素。导致吞吐量随阵列内计算机数量的翻倍而增加的多种因素。 |
• | 系统成本。购买系统的初始成本,不是拥有成本。 |
• | 系统管理。系统管理的复杂程度。这将直接影响系统的拥有成本。 |
• | 容错。系统用于实现高可用性和可靠性的方法。 |
• | 系统升级。用于增强系统处理能力的方法。升级成本也是一个需要考虑的重要事项。 |
下面是在决定扩容时需要权衡的一些因素:
• | 单点故障与容错。与多计算机群集相比,单台计算机部署的可用性更容易受到硬件故障的影响。系统主板或磁盘控制器故障会导致整个系统出现故障而需要修复。这对于出现故障的硬件负载平衡器也是一样。 |
• | 升级。只要计算机上存在空闲的处理器插槽(或硬件负载平衡交换设备中存在可用的端口),单台计算机解决方案就可以很简单地从一个处理器升级到两个处理器。在多计算机群集中,另外添加一台计算机就更复杂了。 |
下表总结了各种扩容方法。
特性 | 硬件交换设备 | Windows NLB | DNS 循环 | CARP |
比例系数 | 2 | 对于 Web 流量为 1.75 对于 SSL 和 VPN 远程访问为 1.9 | 2 | 从 1.5 开始,渐渐接近 2 |
系统成本 | 昂贵 | 无附加成本 | 无附加成本 | 无附加成本 |
容错 | 取决于交换设备(大多数交换设备检测故障计算机并加载其他设备) | 相互检测故障计算机 | 无 | 相互检测故障计算机 |
方案 | 所有 | 所有 | 所有 | 仅转发缓存 |
以下内容适用于上表:
• | NLB 在启用时需要 15% 的性能开销。与禁用了 NLB 的同一阵列相比,带有一个成员的 NLB 阵列的性能将降低 15%。因此,在估计使用 NLB 扩容后的容量时,有必要先将单台计算机的吞吐量值缩小 15%,然后再应用扩容比例系数。 |
• | Web 流量的 NLB 比例系数假设一个双向的关联配置(在阵列上配置多于一个 NLB 群集时)。在许多情况下,对 Web 流量来说,单个关联就足够了,这时的比例系数为 1.9。 |
• | 对站点到站点 VPN 使用 NLB 时,无法对通过阵列成员连接两个站点的隧道进行负载平衡操作。在这种情况下,NLB 仅提供容错。当通过一个 NLB 阵列将一个站点连接到许多站点时,ISA Server 会将隧道分散在所有阵列成员上。 |
随 ISA Server 2006 Enterprise Edition 一起引入的服务器组件之一是配置存储服务器组件。配置存储服务器是企业内部用于存储企业布局和每台 ISA Server 计算机配置的一个存储库。该存储库是 Active Directory? 应用程序模式 (ADAM) 的一个实例。每台 ISA Server 计算机均在本地保留一份其配置的副本,该副本是对服务器配置的复制,位于配置存储服务器中。
可连接到单台配置存储服务器的 ISA Server 计算机的推荐数量为 300 台,推荐的最大数量为 600 台。这些数字是在配置存储服务器上执行资源消耗最多的操作,再根据其性能评测估计得来的 — 导入包含数百条规则和数以千计的策略对象引用的大型策略,会生成一个大约 6 MB 的可扩展标记语言 (XML) 文件。在这种情况下,配置存储服务器会导入该 XML 文件并创建一个新的配置。在配置存储服务器开始向磁盘写入新的配置数据的同时,所有已连接的 ISA Server 计算机同时开始获取此配置,从而配置存储服务器上的 CPU、网络和磁盘 I/O 负载相当大。当配置存储服务器使用 3.6-GHz Intel Pentium 4 双处理器和 2 GB 物理内存时,评测结果显示,配置存储服务器可维持每秒 2600 轻型目录访问协议 (LDAP) 请求的水平。对于大型策略的导入,每台 ISA Server 计算机实现完全同步所需的 LDAP 请求总数为 7000。这些数字可以转换为配置存储服务器导入大型策略 XML 文件后实现所有 ISA Server 计算机的完全同步所需的时间,计算方式如下:
总导入时间 = XML 导入时间 + 将配置写入磁盘的时间 + 所有 ISA Server 计算机同步配置所用的时间
其中:
XML 导入时间 = 120 秒
将配置写入磁盘的时间 = 120 秒
N 台 ISA Server 计算机同步配置所用的时间 = N × 7000 / 2600 = 2.7 × N 秒
下表总结了这些结果。
每台配置存储服务器连接的 ISA Server 计算机的数量 | 160 | 320 | 640 |
同步(分钟) | 8 | 15 | 28 |
同步期间 CPU 使用率百分比 | 100% | 100% | 100% |
在前两个阶段(XML 导入阶段和将配置写入磁盘阶段),CPU 使用率大约为 50%。这是因为执行操作的单线程只能使用双处理器计算机 50% 的处理能力。在单处理器计算机中,CPU 使用情况在这些阶段为 100%,我们必须避免出现这种情况。因此,建议针对配置存储服务器部署双处理器计算机,或在单处理器计算机(采用 Pentium 4 处理器)中启用超线程。
有关部署 ISA Server 配置存储服务器的详细信息,请参阅 Microsoft TechNet 网站的“ISA Server 2006 Enterprise Edition 部署指南”。
本节提供了调整 ISA Server 2006 标准版和企业版大小的主要参考和摘要。第一张表提供了使用 Web 代理、SSL、VPN 和状态筛选方案的每兆位兆周期数。
方案 | 单颗 Pentium 4 处理器 | 双 Xeon 处理器 | 双 Xeon 双核处理器 | AMD |
透明 Web 代理 | 74 | 86 | 62 | 36 |
正向 Web 代理 | 37 | 43 | 32 | 18 |
状态筛选 | 8 | 10 | 9 | 5 |
SSL 隧道 | 30 | 35 | 38 | 40 |
SSL - SSL 到 HTTP
方案 | 单颗 Pentium 4 处理器 | 双 Xeon 处理器 | 双 Xeon 双核处理器 | AMD |
Outlook Web Access | 91 | 128 | 91 | 51 |
Web | 77 | 104 | 72 | 40 |
HTTP 上的 RPC | 69 | 91 | 64 | 35 |
SSL - SSL 到 SSL
方案 | 单颗 Pentium 4 处理器 | 双 Xeon 处理器 | 双 Xeon 双核处理器 | AMD |
Outlook Web Access | 120 | 142 | 101 | 56 |
Web | 96 | 120 | 83 | 46 |
HTTP 上的 RPC | 83 | 104 | 73 | 41 |
VPN 远程访问 - 启用 Web 筛选器
方案 | 单颗 Pentium 4 处理器 | 双 Xeon 处理器 | 双 Xeon 双核处理器 | AMD |
IPsec 上的 L2TP | 214 (107) | 353 (177) | 247 (124) | 136 (68) |
PPTP | 250 (125) | 395 (198) | 277 (239) | 152 (76) |
VPN 远程访问 - 禁用 Web 筛选器
方案 | 单颗 Pentium 4 处理器 | 双 Xeon 处理器 | 双 Xeon 双核处理器 | AMD |
IPsec 上的 L2TP | 80 (40) | 128 (64) | 115 (58) | 81 (41) |
PPTP | 75 (38) | 118 (59) | 106 (53) | 74 (37) |
VPN 站点到站点 - 启用 Web 筛选器
方案 | 单颗 Pentium 4 处理器 | 双 Xeon 处理器 | 双 Xeon 双核处理器 | AMD |
IPsec 上的 L2TP | 132 (66) | 167 (84) | 159 (80) | 89 (45) |
PPTP | 113 (57) | 145 (73) | 162 (81) | 105 (53) |
IPsec 隧道 | 125 | 150 | 168 | 149 |
VPN 站点到站点 - 禁用 Web 筛选器
方案 | 单颗 Pentium 4 处理器 | 双 Xeon 处理器 | 双 Xeon 双核处理器 | AMD |
IPsec 上的 L2TP | 50 (25) | 63 (32) | 49 (25) | 97 (49) |
PPTP | 43 (22) | 56 (28) | 61 (31) | 106 (53) |
IPsec 隧道 | 43 | 52 | 57 | 196 |
以下内容适用于上表:
• | 对于 Web 发布,请使用为正向 Web 代理提供的数字,但要注意,您的实际负载和容量可能与估计有很大出入。 |
• | 对于 VPN,如果相关的话,则有两组数字:第一组表示实际已压缩的每兆位的兆周期数。第二组(括号内的)表示已解压的每应用程序兆位的兆周期数。如果按照线路带宽测量流量,请使用已压缩流量的值,如果测量或估计已解压的应用程序流量更加容易,则请使用应用程序流量值。 |
上表中的数字是在使用下列假设的条件下获得的:
• | 使用 MSDE 日志记录。 | ||||||||||||||||||||||||||||||||
• | 未执行任何 Web 身份验证。 | ||||||||||||||||||||||||||||||||
• | 按默认设置启用了 HTTP Web 筛选器。 | ||||||||||||||||||||||||||||||||
• | ISA Server 负载了典型的 Web 流量。 | ||||||||||||||||||||||||||||||||
• | 请按本文档中的“优化硬件以实现最高的 CPU 使用率”所述优化 ISA Server 硬件。 | ||||||||||||||||||||||||||||||||
• | 下表提供了为增加容量而应用 NLB 扩容时所使用的 NLB 比例系数。 NLB 阵列成员数量
|
以下内容适用于上表:
• | 在应用 NLB 时,必须先对第一张表中的所有数字使用 +15% 的比例系数。 |
• | 仅当在阵列上配置一个以上的 NLB 群集时(例如,使用双向关联),以及仅对于 Web 代理方案(透明代理、正向代理、Web 发布和 SSL 隧道)和状态筛选,请使用比例系数 1.75。在所有其他情况下,请使用比例系数 1.9。 |
以下示例说明了如何使用上表来计算支持特定流量要求所需的硬件。
假设一个大型站点的 Internet 链路带宽在高峰使用时间充分利用的情况下为 80 Mbps。在此期间,10 % 的线路流量用于远程 VPN 访问(IPsec 上的 L2TP,启用了 Web 筛选器),20% 的线路流量用于 Outlook Web Access(使用 SSL 到 HTTP 的桥接),70% 的线路流量用于出站 Web 浏览(50% 的透明代理和 50% 的正向代理)。若要计算此流量的必要兆周期数,请先计算每兆位的加权兆周期数,假设一台双 Xeon 处理器的计算机部署(无负载平衡):
兆周期数/兆位 = 353 × 10% + 128 × 20% + 86 × 35% + 43 × 35% = 107
80 Mbps 所需的每秒兆周期总数为:80 × 107 = 8560。
一台双 3-GHz 处理器的计算机在使用率为 75% 时兆周期仅为 2 × 3000 × 75% = 4500,这是不够的。这样就有必要添加更多计算机来进行扩容。此时还无法确定需要多少台计算机 — 可能是两台,也可能是三台。要计算出所需的每兆位兆周期数按比例系数计算的数值,请将每种流量类型的每兆位兆周期数乘以其对应的比例系数,还要记得再执行一次 +15% 的比例系数计算。对于阵列中的两个成员,Web 流量使用 1.143(假设广播驱动程序体系结构),VPN 和 SSL 流量使用 1.053。结果是:
一个包含两个成员的阵列按比例系数计算的兆周期数/兆位 = 115% × (353 × 10% × 1.053 + 128 × 20% × 1.053 + 86 × 35% × 1.143 + 49 × 35% × 1.143) = 136
所需的每秒兆周期总数结果为:80 × 136 = 10880。这对于两个成员来说负载过大(两台双 3-GHz 处理器的计算机所能支持的每秒兆周期仅为 2 × 4500 = 9000)。三台计算机可能有足够的处理能力来支持此负载。计算结果为:
一个包含三个成员的阵列按比例因数计算兆周期数/兆位 = 115% × (353 × 10% × 1.085 + 128 × 20% × 1.085 + 86 × 35% × 1.236 + 49 × 35% × 1.236) = 143
所需的每秒兆周期总数结果为:80 × 143 = 11440。三台双 3-GHz 处理器的计算机在使用率为 84% 时提供每秒 13500 个兆周期。这足以支持该负载,而且还可提供一些空间用于升级。
联系客服