我遇到了使用ASP.Net/C#開發的網站的問題,有時無限期地使用所有CPU使用率(100%)。你有什麼想法/提示如何去解決可能會導致這樣的資源豬?該網站仍在響應,所以它不會崩潰或類似的東西。診斷asp.net網站/應用程序池的性能
我有點無知從哪裏開始!
謝謝!
我遇到了使用ASP.Net/C#開發的網站的問題,有時無限期地使用所有CPU使用率(100%)。你有什麼想法/提示如何去解決可能會導致這樣的資源豬?該網站仍在響應,所以它不會崩潰或類似的東西。診斷asp.net網站/應用程序池的性能
我有點無知從哪裏開始!
謝謝!
DebugDiag資料是一個偉大的地方開始:http://www.microsoft.com/download/en/details.aspx?id=26798
謝謝,這個工具被證明非常有用,可以找出正在運行的服務器上正在執行的線程! – 2012-05-23 11:40:23
開始使用服務器上的性能計數器。爲垃圾收集,線程使用情況添加計數器,並準確查看哪個線程在使用CPU。
而且,看看這個:
對不起,但我在國外 - 我在哪裏可以找到'線程使用'性能計數器?這是一個活動的服務器,它沒有安裝Visual Studio副本。理想情況下,我可以抽樣說4個小時的時間,並查看哪些線程對CPU使用率有貢獻。理想情況下,我會在某個時間點知道調用堆棧,因爲這對診斷問題會有很大的幫助。有任何想法嗎? – 2012-04-09 13:44:45
我在過去有一個同樣的問題。我主要遇到HTML rendering
問題很慢。 我通過在頁面指令中設置Trace = true
解決了這個問題,並找出了需要花費時間的事件。
另一個問題是Memory Management
。我正在使用Image Classes
,並沒有正確地使用Dispose
。爲此,我開始使用Dispose()
方法,並且我可以在架構中使用語句。
using (SqlConnection con = new SqlConnection("Connection String"))
{
using (SqlCommand cmd = new SqlCommand())
{
using (SqlDataReader DR = cmd.ExecuteReader())
{
}
using (DataTable DT = new DataTable())
{
}
}
}
我想你可能有任何頁面,你可能會提取過多的記錄。您可以開始使用Paging
。
最重要的一點是Exception Handling
。 Try Catch
塊不應該在每一層。它應該只在Presentation Layer
。原因是,當發生異常時,它會直接返回到調用函數。那麼爲什麼要寫Try Catch
塊,並因此在每一層stopping the execution
最好的和最簡單的出發點是使用性能分析器。只要運行它,運氣好點就會在幾分鐘內解決問題。
嘗試dotTrace,這是一個很好的。如果你按照鏈接,有10天的免費試用和視頻教程。
問題僅在特定頁面中? – Pankaj 2012-03-30 10:29:51