Windows-Server-2008
提高 IIS 上的 Windows 身份驗證性能
我們正在努力解決使用 Windows 身份驗證的 ASP.NET MVC 站點的性能問題。
對使用者進行身份驗證時,對站點的第一個請求的響應時間非常慢。此外,每次從瀏覽器發送授權標頭時,響應時間都會增加許多秒。執行文件和靜態內容(如 CSS 和 JS)都會出現同樣的問題。
對應用程序的訪問僅限於特定角色的使用者,我們現在計劃允許所有經過身份驗證的使用者訪問靜態文件,看看是否有幫助。
使用的身份驗證方法是 NTLM。
我們應該如何繼續查明為什麼身份驗證會大幅降低性能?
這個問題很難弄清楚。經過一段時間的調查,我們發現它是零星的,並不總是存在。
我們曾經
nltest /dclist:<domain_name>
獲得客戶環境中所有域控制器的完整列表,發現他們有 13 個。通過使用nltest /dsgetdc:<domain_name
> 我們可以看到,每當伺服器連接到主域控制器 (PDC) 時,由於 DC 上的高流量/負載,身份驗證很慢。每當應用程序使用其他十二個域控制器之一時,該站點都很好。我們可以通過針對特定 DC 執行 LDAP 查找來重現該問題,因為應用程序正在執行大量 LDAP 查找以及對 PDC 以外的 DC 進行硬編碼可以幫助解決這種情況,但會導致單點故障情況。
解決方案是指定一個具有兩個 DC 的單獨站點,這些站點將為上述應用程序和其他應用程序提供服務