0

我在Windows Server 2008 R2服務器上的IIS7下部署了一個MVC2應用程序,該服務器具有足夠的馬力。它連接到SQL Server 2008數據庫,並且應用程序性能比在開發人員工作站上的調試器中運行(連接到相同的SQL Server數據庫)慢得多。我已經檢查過網絡連接,事件日誌中沒有任何內容表明Windows有問題。我還在數據庫服務器上運行了Profiler,查詢速度很快。Windows Server 2008 R2上的MVC2性能IIS7

任何幫助診斷此性能問題,將不勝感激。我甚至建立了一個新的2008 R2服務器來測試它,希望它是服務器本身,但性能是一樣的。

感謝

編輯1:

IIS運行Windows Server 2008 R2標準版,32GB的RAM戴爾R710服務器上運行。 SQL Server 2008託管在運行Server 2008 R2 Standard,12GB RAM的單獨R710上。最初,我讓IIS在虛擬機上運行,​​但是我將它移到了物理機器上,以查看虛擬機是否會導致性能下降。兩人的表現都一樣,所以看起來不是一個因素。

編輯2:

似乎打開到數據庫的連接與存儲過程也採取相當多的時間的隨後的燒製的瓶頸的一部分:

- 開放數據庫連接:5秒(後續連接被緩存,以便它們不要求5秒)

- 第一存儲過程:< 1秒

-Secon d SPROC:5秒

- 第三存儲過程:< 1秒

- 第四存儲過程:< 1秒

-Fifth SPROC:6秒

+1

同一個盒子上的IIS和SQL?虛擬化? – gbn 2011-04-26 19:35:06

+0

不,運行Windows Server 2008 R2 Standard,32GB RAM的物理Dell R710服務器上的IIS。數據庫在運行Server 2008 R2 Standard,12GB RAM的獨立R710上運行。 – JohnyD 2011-04-27 11:00:55

回答

2

首先,Windows Server 2008的R2具有IIS 7.5 ,而不是IIS7。可能沒關係。但是,它是一個不同的版本。

其次,你需要找出瓶頸在哪裏。嘗試刪除查詢並僅使用虛擬數據。它仍然很慢嗎?如果沒有,那麼它與數據訪問無關。如果是這樣,那麼你知道這是一個數據訪問問題。

+0

我不認爲它是數據訪問。我這樣說是因爲當我在我的本地工作站(Win7 64位)的調試器中運行應用程序時,連接到與上述完全相同的數據庫時......它運行速度很快。它在十分之一秒內返回所有數據(幾個呼叫)。在Server 2008上託管(調用同一個數據庫服務器)時,大約需要10秒鐘......每次調用之間都會暫停。我剛剛檢查並且Win7框也運行IIS 7.5,與Server 2008的版本相同。 – JohnyD 2011-04-27 11:09:46

+0

@JohnyD - 這不會改變您必須找到瓶頸的事實。做到這一點的最簡單方法(如果您沒有託管代碼分析器)就是將問題解決出來,直到問題消失。 – 2011-04-27 21:15:24

+0

看起來打開到數據庫的連接是存儲過程隨後觸發的瓶頸的一部分,也需要相當長的時間: - 打開數據庫連接:5秒(隨後的連接被緩存,因此它們不需要5秒) - 第一存儲過程:<1秒 -Second SPROC:5秒 - 第三存儲過程:<1秒 - 第四存儲過程:<1秒 -Fifth SPROC:6秒 – JohnyD 2011-04-29 00:43:37

1

Here are slides從介紹有關優化ASP.NET MVC應用程序。他們能夠將應用的性能從8 req/sec提高到400 req/sec。

他們在幻燈片中提到他們如何描述它並確定瓶頸(查詢編譯,RenderPartial的多次調用,URL生成等),並在演示結束時給出一些提示。

+1

是的,我不會在這方面放太多信任 - 他們在做基準測試時沒有使用發佈模式 - doh!這也是一個老版本。這更可能是一個數據庫問題。 – UpTheCreek 2011-04-27 05:44:09

相關問題