/ 中存储网

Exchange 2010SP3中Outlook Anywhere连接数过多导致用户连接故障

2014-08-28 22:03:03 来源:中存储网

1.1 问题及环境:

客户使用Exchange 2007 SP3版本的邮件系统。A站点共有30000个用户,均使用Outlook Anywhere方式从外网进行连接。A站点的客户端访问服务器共有5台,组成Windows NLB结构。A站点的后端服务器共有5套CCR群集,共10台MBS服务器。

目前正准备将Exchange 2007 SP3版本升级到Exchange 2010 SP3版本。在A站点部署了5台Exchange 2010 SP3的CAS服务器组成。升级的步骤大致如下:

1. 部署及配置Exchange 2010服务器;

2. 将客户端访问切换至Exchange 2010服务器上;

3. 将用户迁移到Exchange 2010后端服务器上;

4. 路由切换至Exchange 2010的HTS服务器;

5. 撤消Exchange 2007服务器。

在完成证书、服务等一系统配置及测试之后,就在客户生产环境中将客户端访问切换到Exchange 2010上了。切换的方法为更改外网发布的名称指向Exchange 2010的NLB的虚拟IP。

完成切换之后,大约有6000个用户(五分之一)的用户反馈:Outlook不断的断开重连,无法发送邮件。

1.2 初步分析:

从故障用户的特点进行分析,与用户所在的后端服务器、所连接的前端服务器、所在的数据库、所在的地区和网络、Outlook 客户端版本均没有关系。如果手动更改用户hosts文件指向到Exchange 2007服务器,则用户可以正常使用邮件系统。用户如果使用OWA方式,也是可以正常访问的。

往下分析,会发现每天早上一开始所有用户都是可以正常访问的,但到了9点多之后,才开始不能正常访问了。分析可能是用户数量逐步多了之后就出现问题了。

1.3 进一步分析:

在发生故障时,使用netstat命令查看服务器上的连接数,其中每台服务器的RPC连接数都在25000上一点点。总连接数都是在50000多个。

如果此时将其中一台服务器重启,然后客户端去连接它(通过手动设定hosts文件的方式),则是正常的,但随着该服务器上的RPC的连接数上升到25000,客户端再去连接它,就出现了断开重连的故障了。

因此,分析服务器上的连接数限制可能是导致此故障发生的原因。

分析以往Exchange 2007服务器上的连接数,即使超过25000的RPC连接数和50000的总连接数都不会出现此故障现象。

1.4 问题解决:

通过Google,终于找到了这个问题的原因:

http://support.microsoft.com/kb/2832198

在Exchange 2010 SP3版本中,通过HTTP 的 RPC请求依赖于 ASP.NET 运行时来处理请求。而ASP.NET本身存在一个默认限制,即25000个。由于之前的所有Exchange版本都不依赖于ASP.NET来实现RPC Over HTTP的访问,因此不存在这个问题。

解决方法如下:

1) 在所有客户端访问服务器上,找到以下文件:

C:WINDOWSMicrosoft.NETFramework64v2.0.50727CONFIGMachine.config

2) 打开 Machine.config 文件

在 < system.web > 部分中,找到以下行:

< processModel requestQueueLimit ="25000"自动配置 ="true"/ >

3) 将 requestQueueLimit 属性的值更改为 65535

4) 重启服务器。

问题解决。