1.1問(wèn)題及環(huán)境:
客戶使用Exchange 2007 SP3版本的郵件系統(tǒng)。A站點(diǎn)共有30000個(gè)用戶,均使用Outlook Anywhere方式從外網(wǎng)進(jìn)行連接。A站點(diǎn)的客戶端訪問(wèn)服務(wù)器共有5臺(tái),組成Windows NLB結(jié)構(gòu)。A站點(diǎn)的后端服務(wù)器共有5套CCR群集,共10臺(tái)MBS服務(wù)器。
目前正準(zhǔn)備將Exchange 2007 SP3版本升級(jí)到Exchange 2010 SP3版本。在A站點(diǎn)部署了5臺(tái)Exchange 2010 SP3的CAS服務(wù)器組成。升級(jí)的步驟大致如下:
部署及配置Exchange 2010服務(wù)器;
將客戶端訪問(wèn)切換至Exchange 2010服務(wù)器上;
將用戶遷移到Exchange 2010后端服務(wù)器上;
路由切換至Exchange 2010的HTS服務(wù)器;
撤消Exchange 2007服務(wù)器。
在完成證書、服務(wù)等一系統(tǒng)配置及測(cè)試之后,就在客戶生產(chǎn)環(huán)境中將客戶端訪問(wèn)切換到Exchange 2010上了。切換的方法為更改外網(wǎng)發(fā)布的名稱指向Exchange 2010的NLB的虛擬IP。
完成切換之后,大約有6000個(gè)用戶(五分之一)的用戶反饋:Outlook不斷的斷開重連,無(wú)法發(fā)送郵件。
1.2初步分析:
從故障用戶的特點(diǎn)進(jìn)行分析,與用戶所在的后端服務(wù)器、所連接的前端服務(wù)器、所在的數(shù)據(jù)庫(kù)、所在的地區(qū)和網(wǎng)絡(luò)、Outlook 客戶端版本均沒(méi)有關(guān)系。如果手動(dòng)更改用戶hosts文件指向到Exchange 2007服務(wù)器,則用戶可以正常使用郵件系統(tǒng)。用戶如果使用OWA方式,也是可以正常訪問(wèn)的。
往下分析,會(huì)發(fā)現(xiàn)每天早上一開始所有用戶都是可以正常訪問(wèn)的,但到了9點(diǎn)多之后,才開始不能正常訪問(wèn)了。分析可能是用戶數(shù)量逐步多了之后就出現(xiàn)問(wèn)題了。
1.3進(jìn)一步分析:
在發(fā)生故障時(shí),使用netstat命令查看服務(wù)器上的連接數(shù),其中每臺(tái)服務(wù)器的RPC連接數(shù)都在25000上一點(diǎn)點(diǎn)??傔B接數(shù)都是在50000多個(gè)。
故障服務(wù)器CAS4CAS2CAS3CAS4CAS2
發(fā)生故障時(shí)的RPC連接數(shù)2507825122250772509825034
發(fā)生故障時(shí)的總連接數(shù)5063350905508785064250083
如果此時(shí)將其中一臺(tái)服務(wù)器重啟,然后客戶端去連接它(通過(guò)手動(dòng)設(shè)定hosts文件的方式),則是正常的,但隨著該服務(wù)器上的RPC的連接數(shù)上升到25000,客戶端再去連接它,就出現(xiàn)了斷開重連的故障了。
因此,分析服務(wù)器上的連接數(shù)限制可能是導(dǎo)致此故障發(fā)生的原因。
分析以往Exchange 2007服務(wù)器上的連接數(shù),即使超過(guò)25000的RPC連接數(shù)和50000的總連接數(shù)都不會(huì)出現(xiàn)此故障現(xiàn)象。
1.4問(wèn)題解決:
通過(guò)Google,終于找到了這個(gè)問(wèn)題的原因:
http://support.microsoft.com/kb/2832198在Exchange 2010 SP3版本中,通過(guò)HTTP 的 RPC請(qǐng)求依賴于 ASP.NET 運(yùn)行時(shí)來(lái)處理請(qǐng)求。而ASP.NET本身存在一個(gè)默認(rèn)限制,即25000個(gè)。由于之前的所有Exchange版本都不依賴于ASP.NET來(lái)實(shí)現(xiàn)RPC Over HTTP的訪問(wèn),因此不存在這個(gè)問(wèn)題。
解決方法如下:
在所有客戶端訪問(wèn)服務(wù)器上,找到以下文件:
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\CONFIG\Machine.config
打開 Machine.config 文件
在 < system.web > 部分中,找到以下行:
< processModel requestQueueLimit ="25000"自動(dòng)配置 ="true"/ >
將 requestQueueLimit 屬性的值更改為 65535
重啟服務(wù)器。
問(wèn)題解決。