單一網頁+ Ajax 後,對Session的存取量大過其它的存取

今天有個意外的發現,參與的顧問案中,其架構為 IIS <-> Web Services <-> SQL Server,另外,IIS 上的 ASP.NET 之 Session 放在 SQL Server。在 Session 內放有 ViewState 和公司組織架構等資料。日前,請網路公司來錄製網路封包,今天檢討分析時,有意外發現:

IIS 與 Web Services 間的往返,抽樣之 Request 資料量約 1 Mbytes,猜其主因是 SOAP 將 Dataset 包裝後的結果

Web Services 與 DB 間的往返,抽樣之 Request 資料量約 200 Kbytes,因是 TDS 封包,純資料的資料量較小

IIS 與 SQL 的 Session,抽樣之 Request 資料量約 3 Mbytes,因為 ViewState 和公司組織架構等資料量太大了:(

另有一個現象,就抽樣區段時間內,總封包數的比例 IIS <->Web Services :Web Services<->SQL Server :IIS <->SQL Server 約為 2:1:8

令人意外的結果,在封包錄製正確的前提下,猜其原因:IIS 與 Web Services 間的溝通,因其 SOAP 導致資料量放大,所以封包數高過 Web Services 和 SQL 間的溝通。而 Session 的存取量如此大,除 Session 本身資料量大,還懷疑每次 Ajax 私下存取 IIS 時,ASP.NET 某些情況下為其準備 Session。

無論如何,Session 要如何存放看來是大型網站需要慎思的一點了…

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: