我們爲客戶託管了一個相當大的(自寫的)ASP.NET網站。它由一個Web服務,一個網站和一個圖像服務網站組成,所有三個都在他們自己的虛擬目錄中。這三個虛擬目錄合在一個應用程序池中。池具有內存限制(最大虛擬內存和最大使用內存),設置爲500兆字節。工作進程因爲達到其虛擬內存限制而被回收
但是,即使一次只有一個用戶,應用程序池也會遭受很多回收。 事件日誌消息稱:
與「XXXX」服務應用程序池「XXXX」的進程ID的工作進程已請求回收,因爲它已經達到其虛擬內存限制。
但是,使用Process Explorer觀察工作進程不會顯示任何支持此消息的內容。我應該觀察哪些計數器來觀察事實上受到兩種設置限制的記憶?
更新1
觀察在任務管理器的過程示出了大約100 MB,仍然進程被回收與上述消息的「MEM的使用」和「VM大小」。 5服務器上可用GB的物理內存......
更新2
雖然網站是相當大的,這個問題在應用程序中的一小部分集中。它執行查詢(使用Oracle)並將結果綁定到gridview和中繼器webcontrol。結果由一個簡短描述和一個圖標組成(通過圖像服務網站加載)。如果我以後對方進行10個搜索行動,每一種有9個結果,工作過程中顯示出大約100 MB的內存使用和虛擬機的大小和回收...
更新圖像的使用的3 交換服務網站不會產生更好的結果。所以我認爲說這個問題是另一回事是公平的。
感謝您的提示,但我已經看過。 – 2008-12-19 16:24:49