2010-01-22 65 views
0

我最近將我們的ASP.NET會話狀態從InProc移至Sql Server解決方案。我可以看到會話數據被插入到Sql Server數據庫中。我使用「專用字節」&「所有堆中的#字節」性能計數器監視w3wp.exe進程。Sql Server中的ASP.NET會話狀態服務,但w3wp.exe #private增加

當我通過它把數據放到session的網站導航,但是專用字節計數器仍在攀升託管網站的服務器上?我認爲會話數據正在寫入數據庫,而不是存儲在內存中?託管字節保持不變,我很確定所有進入會話的對象都是託管類型。

有誰知道爲什麼私人字節仍然會增加?

回答

0

會話只是ASP.Net網站所需的衆多對象之一。您已經將會話存儲移出RAM並存入SQL,但還有很多其他對象需要使用,更不用說提供的頁面本身。

+0

感謝您的回覆。但是,內存消耗似乎幾乎與當我仍然擁有會話對象inproc時相同。我知道的對象是相當大的(我知道不好的做法),它們被插入到會話中。我會不會看到內存使用量有所下降? – dnoxs 2010-01-22 11:38:19

+0

這些對象會話對象必須在某個時間位於RAM中。你不會注意到這個進程的內存使用量下降,因爲內存不會被進程釋放,除非系統需要它。這種方式未使用但保留的內存可以重新使用,無需重新分配。這是一個優化策略。 – AUSteve 2010-01-22 13:00:06

+0

謝謝你有道理。 – dnoxs 2010-01-22 14:40:26