分享

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

 xiaozhuang 2017-04-21

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多个。
故障服务器 CAS4 CAS2 CAS3 CAS4 CAS2
发生故障时的RPC连接数 25078 25122 25077 25098 25034
发生故障时的总连接数 50633 50905 50878 50642 50083
如果此时将其中一台服务器重启,然后客户端去连接它(通过手动设定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:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\CONFIG\Machine.config
  1. 打开 Machine.config 文件
在 < system.web > 部分中,找到以下行:
< processModel requestQueueLimit ="25000"自动配置 ="true"/ >

  1. 将 requestQueueLimit 属性的值更改为 65535
  2. 重启服务器。
问题解决。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章