Asp.net

從 IIS6 遷移到 IIS7 時出現莫名其妙的性能下降

  • January 31, 2018

我們最近將 ASP.NET 4.0 應用程序從 Windows2003 x64/IIS 6 VM 移至新的 Windows 2008 x64 RC2/IIS 7(7.5) VM。資源是相同的 4GB 記憶體、4 個 CPU,都位於同一 ESX 主機上。我嘗試在兩者之間匹配所有可以想像的 iis 配置設置、記憶體、壓縮等。然而,根據 alertsite 和 gomez 的外部性能監控,響應時間自切換以來翻了一番。

“第一個字節的時間”平均值全面增加了十分之幾秒。“內容”傳遞時間全面增加了整整一秒。“整頁下載”全面增加了幾秒鐘。

為了進一步混淆問題,我們從一個兩節點 windows2008 農場開始,使用 ncache 集群會話和一個 brocade 負載平衡器,並且看到響應時間增加了 2-5 倍。然後,我們退回到只有一台伺服器並繞過負載均衡器,使響應時間增加了 2 倍。

負載均衡器使事情變得更糟,並且響應時間增加的大部分是在內容/基頁和整頁下載指標中,這讓我認為它與網路相關,或者至少在 IIS 級別,它在哪裡只是響應速度不如 IIS6。

我希望我忽略了一些關鍵設置,因為我無法理解升級作業系統和加倍資源(添加第二個節點)如何導致性能下降。

我意識到這不是很多資訊,所以我只是在尋找有關在哪裡尋找或如何診斷的任何建議。關於查看哪些 perfmon 計數器、查找什麼以及它們的含義的建議會有所幫助。歡迎大膽猜測。

更新答案,因為部落格不再服務。這裡的答案是通過高級適配器設置(IP4 和 IP6)為網路適配器打開 TCP 解除安裝。早在 2011 年,當被問到這個問題時,許多 NIC 卡的網路驅動程序都不能很好地處理這個操作,並且大大降低了作業系統的速度。隨著驅動程序和虛擬化軟體從那時起有了顯著改進,這通常不會再出現。

您是在“經典”模式還是“集成”模式下執行應用程序池?在“經典”模式下執行會引入一些成本,您可能需要查看這些成本。你可以在這裡閱讀更多關於它的資訊。請注意,如果不進行一些細微的更改以在 IIS7 管道中和諧地工作,您的應用程序可能無法僅在“集成”模式下執行。

所有這一切,我不確定它是否能準確地解釋你的情況……特別是如果你真的在談論提供基於靜態文件系統的內容。如果您在中間有自定義處理程序,它肯定是相關的。

引用自:https://serverfault.com/questions/312907