我們已經構建了一個Web應用程序,該應用程序即使在有大量可用資源的情況下也表現糟糕。我的老闆不相信應用程序會消耗大量的硬件IO,所以我必須證明硬件沒問題,但是網絡應用程序真的很糟糕。性能和監控.NET應用程序
的應用程序使用:
- 的SQL Server 2000 SP4的
- 主Web應用程序(.NET 3.5)
- 兩個Web服務(.NET 1.1)
- 2004年Biztalk的
有30人使用這個應用程序。
我該如何證明我是對的?
我們已經構建了一個Web應用程序,該應用程序即使在有大量可用資源的情況下也表現糟糕。我的老闆不相信應用程序會消耗大量的硬件IO,所以我必須證明硬件沒問題,但是網絡應用程序真的很糟糕。性能和監控.NET應用程序
的應用程序使用:
有30人使用這個應用程序。
我該如何證明我是對的?
您可以掛鉤探查像ANTS profiler或JetBrains DotTrace,看看應用程序的性能瓶頸。
您可以開始的一個地方是獲得性能分析器,如紅門螞蟻探查器。我已經使用了這個工具,清除性能瓶頸非常有用。
蘭迪
您可以先使用SQL Server Profiler來獲得正在進行的數據庫通信量的印象。
我並不是說數據庫交互是瓶頸,但通常情況下,如果您使用的是SQL Server,那麼該工具已經存在,因此在您離開之前查看一下該信息可能是個好主意併購買大量的分析工具。
Visual Studio 2008還具有內置的性能分析工具。
Windows性能計數器是獲取有關一般系統性能的一些基本信息的好方法。正確的計數器會告訴你它是否真的是做了很多東西的IO。如果您從計數器中取出數字並將其與規格進行比較,您應該能夠判斷系統是否正在最大化。
如果系統最大化,這是Web應用程序的問題,應該對它進行分析以找出開始優化的位置。
自XP以來,您可以使用Windows內置的系統性能監視器。你幾乎可以獲得任何你可能需要的信息。這包括CPU時間,.NET內存使用情況(包括gen0 gen1和gen2),本機內存使用情況,垃圾回收花費的時間量,磁盤訪問時間等。如果您只是搜索codeproject或僅僅搜索web,有很多使用這些的例子反測試幾乎任何你想要的東西。
這樣做的好處之一是您不必更改代碼並且可以與現有系統一起使用。
我覺得這是一個最好的起點,指出你應該在哪裏尋找瓶頸和問題。
是什麼讓你覺得你的應用消耗了大量的硬件IO? – ram 2009-12-21 13:02:18
爲什麼它慢?內存不足? CPU高?或高磁盤I/O? – 2009-12-21 13:02:59
你對「慢」的定義是什麼? – 2009-12-21 13:04:24