2013-04-26 97 views
1

所以最近我被一家財富50強公司的大部門聘用,直接從大學畢業。我將支持一個全新的ASP.NET MVC應用程序 - 超過四百年由承包商編寫的超過一百萬行代碼。該系統最多可同時處理3個或4個請求,但運行速度非常緩慢。它應該在2周內上線......我正在尋找關於如何大幅度提高可擴展性的實用建議。ASP.NET MVC中的剖析和輸出緩存

我在Uni中給出的建議是首先運行一個分析器。我已經與我的經理保證了相當大的工具預算,所以價格不會成爲問題。什麼是ASP.NET MVC的優秀或者最好的剖析器?

我也在尋找添加緩存。目前沒有爲nHibernate配置第二級和查詢緩存。我目前的想法是使用Redis來達到這個目的。同樣在尋找輸出緩存,但不幸的是,大多數用戶將登錄到該網站。有沒有辦法仍然緩存MVC服務的部分頁面?

回答

0

對於nHibernate分析(會話查詢,緩存,執行時間),您可以使用HibernatingRhinos Profiler。它是由開發nhibernate的人開發的,所以你知道它會很好用。

這裏是URL它: http://hibernatingrhinos.com/products/nhprof

你可以給它一個嘗試,並決定是否幫助你或沒有。

+0

謝謝塞爾吉奧。在開始優化特定部分(例如nHibernate相關代碼)之前,我寧願首先確定最大的性能問題。 – 2013-04-26 17:35:06

2

您是否有任何應用程序的監控或儀器設置?如果不是,我強烈建議從那裏開始。我一直在使用New Relic幾年與ASP.NET應用程序,並已非常滿意。

馬上蝙蝠,你得到分解成3種任務的請求響應時間一個漂亮的圖形,有助於響應時間

  • .NET CLR - 跑步時間.NET代碼
  • 數據庫 - 時間花在等待上的SQL請求
  • 請求隊列 - 時間花在等待應用工人變得可用

它還通過MVC作用,從而打破了性能你可以看到哪些是最慢的。您還可以查看每個數據庫查詢的性能細目。我已經多次使用這種方法來檢測對於大量生產負載太慢的程序。

如果您願意,您可以讓New Relic在您的頁面上添加一些不顯眼的Javascript,以便您瀏覽器加載時間。這有助於你理解「我的北美以外的用戶平均花500ms加載圖像,我需要將我的圖像移動到CDN!」

我強烈建議你使用這樣的一些儀器軟件。它一定會讓你指出正確的方向,並幫助你保持你的應用程序可用和健康。

Profiler是一個方便的工具,用於觀察應用程序如何與數據庫進行通信並調試奇怪的行爲。對於性能測試來說這不是一個長期的解決方案,因爲它會給您的服務器帶來負擔,並且結果需要相當多的費力處理和消化來爲您繪製清晰的圖像。

隨機想法:檢查您的應用程序池配置,並保留並注意事件日誌中的太多回收事件。當應用程序池回收時,需要一段時間再次變爲響應。這只是其中一件事情可能會導致性能下降,你可以把你的頭髮試圖追蹤它。不正確的回收設置最近使我苦惱,所以這就是我提到它的原因。