當您在執行 Microsoft Windows Server 2003 的電腦上裝載使用 Microsoft
ASP.NET 的 Web 應用程式時,出現效能降低的情形。當您在多處理器電腦的多應用程式集區中裝載 Web
應用程式時,可能就會發生這個問題。此外,當可用記憶體不足時,您可能會遇到下列一或多個問題:
| ? | 收到 System.OutOfMemoryException 類型的例外狀況。 |
| ? | 當您嘗試開啟 ASP.NET 網頁時,收到下列錯誤訊息: 伺服器應用程式無法使用 |
| ? | 電腦可能停止回應。 |
回此頁最上方
之所以發生這個問題,是因為多處理器電腦上的 Microsoft .NET Framework Common
Language Runtime (CLR) 使用「伺服器」記憶體回收行程 (GC)
所造成的。這是預設的行為。多處理器電腦上的「伺服器」記憶體回收行程已為可擴充的輸送量而進行最佳化。為了避免爭用,同時改善多處理器電腦上記憶體回收行程的效能,「伺服器」記憶體回收行程會為每個處理器建立一個堆積,當做平行回收使用。因此,當您裝載多個
ASP.NET 背景工作處理序時,「伺服器」記憶體回收行程會耗用許多記憶體。這個情形可能會造成<徵狀>一節所述的問題。
回此頁最上方
如果要解決這個問題,請將 .NET Framework Common Language Runtime
設定為使用「工作站」記憶體回收行程。「工作站」記憶體回收行程經過最佳化,可以減少互動式應用程式的記憶體回收行程暫停時間。此外,「工作站」記憶體回收行程也只會建立一個堆積。因此,當您在多處理器電腦上執行多個應用程式時,「工作站」記憶體回收行程會耗用較少記憶體。
如果要將 .NET Framework Common Language Runtime 設定為使用「工作站」記憶體回收行程,請在
Aspnet.config 檔案的
<runtime> 項目後面加入下列程式碼。Aspnet.config 檔案位於下列其中一個資料夾中:
| ? | 如果您執行 Microsoft .NET Framework 2.0: %WINDIR%\Microsoft.NET\Framework\v2.0.50727 |
| ? | 如果您執行 Microsoft .NET Framework 1.1: %WINDIR%\Microsoft.NET\Framework\v1.1.4322 |
<configuration>
<runtime>
<gcServer enabled="false"/>
</runtime>
</configuration>
注意「工作站」記憶體回收行程已為低延遲而進行最佳化。一般而言,用戶端應用程式會需要低延遲。不過,將 .NET Framework
Common Language Runtime 設定為使用「工作站」記憶體回收行程之後,低延遲可能會造成輸送量減少。
回此頁最上方
如需有關 .NET Framework 效能考量的詳細資訊,請造訪下列 Microsoft Developer
Network (MSDN) 網站:
回此頁最上方