RSS

outlook anywhere 在outlook 2007、2003和exchange 2007上的性能

23 Apr

白皮书原地址:technet上有。

通常一个典型的用户连接视图如下

 

下图是客户端连接的统计表,outlook 2007 多了store方面的连接

 

tcp协议要求每个连接都包含n-tuple。TCP端口有2^16-1 个。Non-paged pool memory 用来管理已建立的连接,所以non-paged pool的大小限制了incoming connections的数量。这个限制在32位系统(物理内存)上很难体现出来,在到达tcp连接数量的限制前,物理内存已经先行耗尽了。但是切换到64位系统后,可用物理内存的限制已经不存在了,这就可能出现tcp连接限制的问题了。

非页面池内存和不同的OS的联系

 

32-bit  

64-bit

windows 5

< 1.2GB RAM:32~256 MB
> 1.2GB RAM:256MB

~40% RAM~128GB

windows 6

~75% RAM~2GB

~75% RAM~128GB

———————————-

outlook anywhere实际上构建在rpc/http上。客户端到rpc proxy使用http/https,rpc proxy 到exchange 则是tcp。客户端到exchange服务器的连接流程如下

1-Client to Proxy
2-Proxy to Exchange
3-Exchange to Proxy
4-Proxy to Client

以上四步连接完成后,RPC就会认为outlook到exchange是完全双向的连接。

 

exhcange有2种连接:邮件和目录访问。

mail connection 从outlook到CAS的RPCproxy 再到MBS。 ISA会将这些连接转移到CAS (RPC/Http proxy)。exchange对该服务请求进行相应并回复客户端。

directory 连接从outlook到CAS的RPC proxy再到MBS的DS proxy再到GC。DC直接处理RPC连接请求,DS proxy仅仅是做了一次代理转换。从exchange到dc的大量出站连接就是DS Proxy创建的。

CAS因为tcp协议限制最多使用(2^16-1)65535个端口。而outlookanywhere客户端的建立会使用2~8个端口。 而且MSEXIS有一个硬性限制:最多能处理60000条RPC请求。

——–

MBS占用的出站ip端口速度要远比入站快,这是DSProxy的操作方式导致的。DSProxy为每个入站连接开启一个单独的出站连接。而MBS则会开启同样数量的出站连接到GC。

tips:

1、客户端不能共享连接。

2、连接在用户注销的时候会自动断开

3、用户开启另一台服务器上的邮箱,cas上会增加到MBS的连接数量

4、用户开启另一台服务器上的多个邮箱,cas上会增加到MBS的连接数量,但数量和3一样多。

5、ISA发布的站点依然会遇到非页面池内存的问题。

——–

解决端口不足的办法有2种:添加cas(ISA)或者在windows 2008 下使用多个ip。

windows 2008可以配置一个注册表键值使得每个ip都能使用65535个端口,无论是多网卡还是单网卡多ip。每个RPC/HTTP连接会占用CAS 61KB内存。

缓和端口不足的办法:让outlook直接和GC通讯。

方法:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MsExchangeSA\Parameters
DWORD:Do Not Refer HTTP to DSProxy
value:1

修改后,你可以看到eventID9240,生效时间大约是5分钟

HKLM\Software\Microsoft\RPC\RPCProxy

这里添加上MBS可用的GC,添加端口是6004,需要包含netbios和fqdn两种。

为了防止Microsoft Exchange Service Host service修改上面的设置,还需要修改

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeServiceHost\RpcHttpConfigurator\
DWORD:PeriodicPollingMinutes
value:0

完成后需要重启Microsoft Exchange Service Host service

在每台GC上修改下列键值:

HKLM\System\CCS\Services\NTDS\Parameters\
Multi-StringValue:NSPI interface protocol sequences
value:ncacn_http:6004

完成后需要重启服务器

——————————-

IIS导致的问题:

RPC over http 实际上运行在iis的Default Application Pool中。该池的默认每29小时启动一次回收工作进程。在回收过程中,iis允许活动的工作线程在额外的90s内完成服务请求。

而 RPC over http是长时间的连接,很可能在这额外的90s中,程序并没有完成服务请求,于是该连接就中断了,这就导致outlook失去iis的连接。随后,outlook会立即尝试重新连接。可是如果大量的用户同时掉线,紧接着同时的大量连接可能会直接导致服务器当机。

缓解该问题:

1、如果可以,将RPC over HTTP放在一个单独的应用池中

2、关闭RPC over HTTP所在应用池的回收机制

3、增大http.sys的队列限制到10000(默认1000)

Advertisements
 
4 Comments

Posted by on April 23, 2009 in Exchange Server

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: