2013-08-25 37 views
0

我目前正在運行一個asp.net mvc應用程序,並且在高負載下,我看到該網站最大值爲100%。這不應該是這種情況,我認爲應用程序可能會降低性能。此應用程序直接與通信到sql server數據庫的wcf服務層通信。 wcf層或數據庫層都沒有任何性能問題,因爲100%的CPU可以直接分配給MVC應用程序。用於具有非常高的CPU的mvc應用程序剖析工具

因此,我正在分析哪些問題可能出現在MVC應用程序中 - 最好不更改任何代碼。該服務器是帶有IIS 7.5的Windows Server 2008 R2。

有什麼工具可以提供幫助?對於初學者,我一直在尋找設置一些性能計數器。

+0

http://miniprofiler.com/ –

回答

3

我知道這似乎是一個艱鉅的任務入門,但開始緩慢,並試圖爲您的應用程序出現如此惡化的性能開發假設。一個良好的開始是基本的性能計數器和debugdiag,按這篇文章:

Troubleshooting High CPU in an IIS 7.x Application Pool

有無數關於這個主題SO職位,所以肯定做你的研究。對於ASP.NET MVC應用程序,我建議您使用Red Gate ANTS,因爲它可以顯示調用DB和其他下游系統的位置和時間長度,因此一個好的配置文件可以幫助您。

0

如果一個程序佔用100%的核心運行,這意味着它的CPU時間與I/O(或睡眠)時間的比率非常高。 如果這是正常的,那麼你可以將CPU時間減少一個數量級,並且它仍然可以顯示幾乎100%的CPU,即使它的工作量增加了十倍。 所有這一切意味着有比CPU百分比更好的性能診斷。

一個好的方法是:每秒鐘或每分鐘處理多少次事務?如果這個數字下降,你就知道你有問題要解決。

我使用的方法是在緩慢期間得到stackshot samples並檢查它們。例如,如果有50%的時間有可疑的事情發生,那麼在大約50%的樣本中將精確詳細地看到它。 你不需要太多的樣本來看這個,但你需要檢查每一個。 測量結果並不能很好地告訴你發生了什麼事。

相關問題