2011-02-16 81 views
4

我正在加載測試一個asp.net應用程序。 負載測試正在模擬500位用戶在網站上進行搜索並瀏覽結果。我注意到,我越減小會話超時限制(在web.config中),頁面響應時間越短。 例如,在10分鐘超時時,我的平均響應時間爲8.35秒。 在3分鐘的時間內,同一頁面的平均響應時間爲3,98秒。 會話存儲在「InProc」中。 我認爲「沒有更多使用但仍然活躍」會話使用的內存可能是原因。但是,即使在超時時間爲10時仍有更多的內存使用,仍然有大量內存可用(大約2.7Gb)。 任何想法?會話超時和頁面響應時間

+0

你使用會話變量嗎?延遲是指什麼代碼?大概在尋找結果與尋呼結果在一起?那麼你用什麼方法來分頁? – Aristos 2011-02-17 00:23:33

+0

是的,使用會話變量主要用於存儲搜索結果,以便可以跨網站的不同頁面訪問它們。我存儲有關每個結果的基本信息,然後當顯示結果頁面(如200的第一個結果)時,我會閱讀通過Web服務顯示的詳細信息。它會導致會話變量中的大量數據,但我沒有看到減少它的方法。 200搜索結果約爲140Ko,共有225Ko過牆,包括ViewState數據(使用SessionPageStatePersister)。每頁大約慢3倍。 – Johnny5 2011-02-17 14:24:07

回答

0

就我個人而言,即使狀態服務器與Web服務器位於同一物理機器上,存儲會話狀態進程(StateServer)也會大大提高性能。

1

這聽起來好像你沒有使用會話,因爲它的目的。你是否考慮過使用會話變量而不是使用會話變量,使用其中一種可用的緩存機制可能會更好,無論是通過低級還是進程內緩存?下面是最好的地方開始:

http://msdn.microsoft.com/en-us/library/xsbfdd8c%28v=vs.71%29.aspx

它也強烈建議您禁用在任一頁面或控制的水平視圖狀態它不是任何需要的地方。如果您使用視圖狀態解碼器,如:

http://ashishware.com/ViewStatePeeker.shtml

..you'll由無用的垃圾IT賣場的量被嚇壞了!

0

VU執行的測試用例有多長?如果他們沒有花費更短的會話超時時間(< 3分鐘),或者他們花費的時間比他們兩個都長(> 10分鐘),那麼看起來改變該超時應該沒有效果。

測試用例是否包含註銷?或者VU簡單地放棄會話(關閉瀏覽器等)?