简介
Microsoft Internet Security and Acceleration (ISA) Server 2004 提供网络之间受控的安全访问,并充当一个提供快速 Web 响应和卸载能力的 Web 缓存代理。它的多层体系结构和高级策略引擎为您需要的安全级别和所需要的资源之间的平衡提供了精确的控制。当一台边缘服务器连接多个网络时,与组织中的其他服务器相比较,ISA Server 要处理大量的流量。由于这个原因,它是为高性能而构建的。本文为部署具有最佳性能和充足容量的 ISA Server 提供指南。
摘要
在大多数情况下,可用的网络带宽(特别是 Internet 链路带宽)可通过运行在可用的入门级硬件上的ISA Server 来保护,对于各种 Internet 链路,典型的保护出站 Web 访问(HTTP 流量)的默认 ISA Server 部署需要以下硬件配置(有关详细信息请参阅“Web 代理方案”)。
使用传输层状态筛选而不是Web 代理筛选,将相同流量模式的 CPU 使用率提高了10倍;状态筛选和应用程序筛选可同时使用,以提供对性能的精确控制。
规划 ISA Server 容量
了解容量需求是确定 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.4GHz 处理器上的 ISA Server 能够在 75% 的 CPU 使用率下提供大约 25 Mbps 的吞吐量。这意味着对于每条 T1 Internet 链路 (1.5 Mbps),防火墙服务仅使用 4.5% 的CPU。双 Xeon 2.4GHz 处理器能够在 75% 的 CPU 使用率(或每条 T1 利用 2.5% 的 CPU)下提供大约 45 Mbps (T3) 的吞吐量。
单台入门级计算机还适合于通过具有上一段描述的带宽限制的独立广域网 (WAN) Internet 链路连接到公司资源的分支机构。
企业级
对于拥有超过 500 个用户的大型企业级站点,情况就更复杂了。这种情况需要更周密的规划,因为 Internet 带宽大到足以将性能瓶颈转移到系统的 CPU 资源上。
Internet 连接带宽对能够完全利用该连接的计算机的数量施加了限制,其上限可能比大多数容量估计值都大得多。起初,最大网络容量的规划可能是保守的,因为容量需求经常是随着时间的推移而增加。为适应未来的增长,您还应该规划处理能力升级。欲获得关于硬件扩展技术、其性能特征以及其他扩展优势的描述,请参阅“横向扩展 ISA Server”。
性能优化指南
在确定哪种容量情况满足需要之后,下一个任务就是加以优化以获得最佳性能。对于企业级 ISA,这意味着设计充足的硬件资源,使系统依赖其 CPU 能力作为可能的瓶颈源。对于单台入门级 ISA Server 计算机,可能的瓶颈源是 Internet 带宽,而不是您选择的处理器。
优化硬件以实现最高的 CPU 使用率
ISA Server 容量依赖 CPU、内存、网络和磁盘硬件资源。每种资源都具有容量限制,只要所有资源的使用都不超过其上限,系统在整体上就能正常运行,从而满足其性能目标。当到达其中某个限制时,性能就会显著下降,从而导致瓶颈。在这种情况下,我们就说系统受到该资源的约束。每个瓶颈在整体系统性能中都具有其症状,可帮助检测没有足够容量的资源。在发现瓶颈之后,可通过向没有足够容量的资源增添容量来消除瓶颈。
从成本的角度看,设计一个受 CPU 资源约束的系统是最高效的。这是因为它是升级成本最昂贵的资源。其他资源短缺不需要多大的成本即可解决:添加另一个磁盘,添加另一个网络适配器,或者增加内存。推荐优化系统的硬件来最大化 CPU 使用率。确保系统在达到全部 CPU 使用率之前不存在性能瓶颈。如果 CPU 能力能够维持预期的负荷,则瓶颈永远不会出现。为此,其他所有资源必须具有足够的容量。以下几个小节描述如何设计每种资源都具有足够容量的、CPU 容量最大化的系统,如何监视每种资源,以及如何对每种资源中的瓶颈进行故障排除。
确定 CPU 和 系统体系结构容量
与服务于众多客户端请求的大多数服务器应用程序一样,ISA Server 性能也得益于更高的 CPU 速度、更大的处理器高速缓存和改进的系统体系结构:
CPU 速度。与在大多数应用程序中一样,ISA Server 也得益于更快的 CPU。然而,提高 CPU 速度不会保证性能的直线提升。受大量和频繁的内存访问的影响,提高 CPU 速度可能导致在等待 CPU 周期时浪费更多的空闲内存 ;
L2/L3 高速缓存大小。处理大量的数据需要频繁的内存访问。L2/L3 高速缓存提高了大量内存读取的性能 ;
系统体系结构。由于 ISA Server 在网络设备、内存和 CPU 之间传输大量的数据负荷,CPU 周围的系统组件也会影响 ISA Server 的性能。更快的内存前端总线 (FSB) 和更快的 I/O 总线可以提高整体容量。
CPU 瓶颈的特征如下:
Processor\% Processor Time
性能计数器数值很高,而网络适配器和磁盘 I/O 保持很低的容量。在这样的情况下(这是理想的 CPU 容量最大化的系统),达到 100% 意味着必须提高 CPU 能力,不管是升级为更快的 CPU 还是添加更多的处理器。有关 CPU 扩展选择的信息,请参阅“扩展 ISA Server”。如果 ISA Server 仍然具有很长的响应时间,但是具有很低的 CPU 使用百分比,则瓶颈应在其他地方。
确定内存容量
ISA Server 内存用于:
存储网络套接字(主要来自未分页的池)
内部数据结构
未决的请求对象
在 Web 代理缓存情景中,内存还用于:
磁盘缓存目录结构
内存缓存
由于 ISA Server 要处理众多需要系统未分页内存的并发连接,内存限制因素就是未分页池的大小,而这是由总的内存大小决定的。对于 Microsoft Windows Server 2003 和 Windows 2000 Server,未分页池大小的最低值和最高值如下表所示。
在没有启用 Web 缓存时,512 MB 对单处理器计算机来说应该足够了,而 1,024 MB 对于双处理器计算机来说也应该足够了。这些内存空间也可以存储完整的内存工作集容量。
内存没有得到正确优化的最关键证据是 MemoryPages/sec (衡量每秒的硬页面错误)在峰值负荷期间很大(大于 10)。如果发生这种情况,第一步行动取决于是否启用了 Web 缓存:
如果禁用了 Web 缓存,必须监视系统中所有进程所使用的内存来确定是否需要更多的物理内存。以下性能计数器将会帮助您:
MemoryPages/sec
MemoryPool Nonpaged Bytes
MemoryPool Paged Bytes
Process(*)Working Set
如果启用了 Web 缓存,应首先尝试把内存缓存大小降低到物理内存的 10%。如果仍然发生硬页面错误,则继续执行第一步。
确定网络容量
某个连接上存在的每个网络设备都具有容量限制。这包括客户端和服务器网络适配器、路由器、交换机,以及将它们相互连接起来的集线器。足够的网络容量意味着这其中任何一个网络设备都不会饱和。监视网络活动对于确保所有网络设备上的实际负荷低于它们的最高容量是必不可少的。
在两种一般情况下,网络容量会影响 ISA Server 性能:
ISA Server 使用 WAN 链路连接到 Internet。在大多数情况下,Internet 连接带宽设定了流量的上限。过渡使用 Internet 链路可能在峰值流量期间导致性能降低。
ISA Server 仅连接到 LAN。在这种情况下,有一个支持最高流量需求的基础结构是很重要的。然而在大多数情况下,由于 100Mbps 和 1Gbps LAN 价格低廉,这并不是一个问题。
为了监视网络活动,可使用性能计数器:
Network Interface(*)Bytes Total/sec
如果其值高于任何网络接口的最大带宽的 75%,应考虑增加不足大的网络基础结构的带宽。
确定磁盘存储容量
ISA Server 将磁盘存储用于:
对防火墙活动进行日志记录
Web 缓