Outlook Anywhere扩展性与Exchange

  前言

  Outlook Anywhere 可扩性和客户端网络流量是两个不同的领域,它们生成了许多问题,比如Outlook 用来创建和维持到Exchange 服务器的连接的数量。当讨论站点合并的时候,这个话题是经常讨论的主题,这也增加了网络成本和TCP连接限制。通过托管公司和大型企业客户,并强制所有的MAPI连接通过RPC over HTTP (RCP/HTTP),TCP连接限制很大程度上被达到。在下面的内容当中,我们将涵盖这些领域中每个部分的细节,来帮助展示您希望看到的行为,当在Exchange 2007 中使用Outlook Anywhere 的时候。

  Outlook 连接

  因为在Exchange 2007 有许多变数,很难为所有可能的变数提供一个固定的客户端连接的数量。在非缺省Exchange 2007 环境中,实际的连接数量也可能不同根据使用的ISA 服务器、公用文件夹、Outlook Add-ins等等。Outlook 连接也可能不同根据客户端的特性或者使用的模式,包括访问共享日历、公用文件夹、或脱机地址簿。因为这些变数,最有用的是在缺省的Exchange 2007 安装中提供可以看到的连接数量。该文章中提供的连接数量是通过在缺省的Exchange 2007 安装中运行TCPView。它包含安装有邮箱服务器角色的服务器,安装有客户端访问服务器角色的服务器,Windows Server 2003 活动目录,和缺省的Outlook 2003 和Outlook 2007 客户端。

  在缺省情况下,通过Outlook Anywhere初始登录,Outlook2003 或者 2007在缓存模式下,使用6个目录TCP连接和4个TCP存储连接。一分钟后,目录连接被关闭,同时连接的数量减少到两个稳定的连接。一个空闲的Outlook 客户端使用2个TCP目录连接和4个TCP存储连接。如果该客户端处于在线模式,并且连接到地址簿,Outlook 打开2个额外的TCP目录连接。

  TCP 协议连接限制

  TCP协议有一个要求,每个连接必须有一个唯一的有秩序的列表,也被称为N元组,它包含源地址、源端口、目的地址和目的端口。所有入站的连接使用相同的目的地址或者端口,因此入站连接的数量被非页池的大小限制。每个出站连接在一个地址上消耗一个端口。TCP端口是16位的数字,因此最多有65,535 个端口。

  在Exchange 2007中,到64位硬件的变化揭开了该扩展性的限制。在Exchange 2003中,32位硬件的内存限制隐藏了该限制,因为那些内存限制,在TCP连接限制能够被达到之前内存可用性将被消耗完。现在,随着64位硬件和几乎没有限制的内存数量,Exchange 不在被限制在该区域,所有能够达到TCP连接限制。一般情况下,这将影响这样的企业客户,他们运行在非常高的级别,并尝试尽可能地利用他们的硬件来做更多的扩展。

  Outlook Anywhere 路径

  RPC/HTTP 是一个隧道效应协议,Exchange 使用一对虚拟通道来创建一个从Outlook到Exchange的虚拟连接。每个虚拟通道是一个单方向的数据流,通过不同的实际通道来传输。客户端到RPC 代理通道是HTTP/HTTPS,RPC 代理到 Exchange通道是TCP。客户端然后建立4个通道。数据流如下:

  1. 客户端到代理

  2. 代理到 Exchange

  3. Exchange 到代理

  4. 代理到客户端

  一旦所有的4个通道被建立起来,接着RPC把它作为一个完整的双向的从Outlook到Exchange 隧道连接。在不中断虚拟连接上的数据流的情况下,每个实际通道能够被替换。

  Exchange 有两种类型的连接,邮件和目录。这些连接中的每个将以一对虚拟通道出现。邮件连接流从Outlook到客户端访问服务器上的RPC 代理组件到邮箱服务器。在部署中,如果使用了 ISA服务器,ISA服务器将代理这些连接到客户端访问服务器(RPC/HTTP Proxy)。因为ISA服务器仍然是一个32位的应用程序,它不能将TCP连接增加到物理的连接限制在它消耗完可用的非页池缓存。非页池缓存被用来管理建立的高数量的连接。这个限制将被达到在任何Exchange 限制被达到之前。这里的测试文档没有涉及该问题。然而,对于任何实际环境部署这是一个重要的考虑因数。接着Exchange 使用它自己的数据存储来服务该请求并回复给该客户端。目录连接流从Outlook 到客户端访问服务器上的RPC代理组件到邮箱服务器上的DS代理组件到活动目录全局编录服务器。RPC连接在DC上被处理(不是在Exchange 服务器上),DS代理组件只不过拷贝字节从一个TCP连接到另一个。从Exchange 到DC的大数量的出站连接是DS代理组件的一个功能,能够将连接组成隧道。

  该文章前面讨论的TCP连接限制作为TCP协议的消费者存在于Windows Server 2003 和Windows Server 2008中。一个IP地址被用作源IP地址当它打开到一个远程计算机的一个连接时。每个客户端访问服务器被Windows 可用的65,535 端口所限制。当每个客户端使用Anywhere时,客户端访问服务器消耗可用的端口池处于2到8个连接。信息存储进程有一个60000的RPC上下文处理的硬限制,它和Outlook和Exchange 之间的每个RPC/HTTP 虚拟连接有关。因此,该存储进程被限制在60000个这样的邮件连接。如图1所示。

  

  下面这些性能计数器在判断服务器是否达到限制是有帮助的:

  RPC/HTTP Proxy (Windows Server 2008 Only)

  • Current number of incoming RPC/HTTP connections

  • Current number of unique users

  • RPC/HTTP requests per second

  • Number of failed back-end connection attempts

  MSExchangeIS

  • RPC Averaged Latency

  • RPC Requests

  • RPC Operations/Sec

  Web Service (Windows Server 2003 Only)

  • Current Connections

  注意:这些计数器只在那些没有使用其他的Web服务的服务器上有用。

  Memory

  • Non-paged pool

  • Paged Pool

  Process

  • Private bytes / LSASS, W3WP and any Exchange-specific processes running

  current number of incoming RPC/HTTP connections 和current number of unique users 这两个在Windows Server 2008中可用的计数器将决定有多少用户连接和有多少不同的NT用户连接。其他的计数器将帮助控制潜在的新用户连接到服务器的拒绝的因素和服务器如何失败。

分享到