簡體   English   中英

ASP.NET MVC中的分析和輸出緩存

[英]Profiling and output caching in ASP.NET MVC

因此,我最近剛從大學畢業時就被一家財富50強公司的大部門雇用。 我將支持全新的ASP.NET MVC應用程序-承包商在4年內編寫的超過一百萬行代碼。 該系統最多可同時處理3或4個請求,但隨着更多請求變得非常慢。 它應該在2周內上線...我正在尋找有關如何大幅改善可伸縮性的實用建議。

我在Uni中得到的建議是始終始終先運行探查器。 我已經和經理取得了可觀的工具預算,因此價格不會成為問題。 什么是ASP.NET MVC的最佳或最佳分析器?

我也在尋找添加緩存。 當前沒有為nHibernate配置第二級和查詢緩存。 我目前的想法是將Redis用於此目的。 還在查看輸出緩存,但不幸的是,大多數用戶將登錄到該站點。 有沒有辦法仍然緩存由MVC服務的部分頁面?

您對應用程序有任何監視或檢測設置嗎? 如果沒有,我強烈建議從那里開始。 我在ASP.NET應用程序上使用New Relic已經有幾年了,對此感到非常滿意。

馬上,您會得到一張漂亮的請求響應時間圖表,該圖表分為3種有助於響應時間的任務

  • .NET CLR-運行.NET代碼所花費的時間
  • 數據庫-等待SQL請求所花費的時間
  • 請求隊列-等待應用程序工作者可用的時間

它還會通過MVC動作破壞性能,因此您可以查看哪些是最慢的。 您還會獲得每個數據庫查詢的性能明細。 我已經使用了很多次來檢測對於繁重的生產負載來說太慢的過程。

如果需要,您可以讓New Relic在頁面上添加一些不引人注目的Javascript,以便您了解瀏覽器的加載時間。 這可以幫助您解決諸如“我在北美以外的用戶平均花費500毫秒來加載圖像。我需要將圖像移至CDN!”

我強烈建議您使用這樣的儀器軟件。 它一定會為您指明正確的方向,並幫助您保持應用程序的可用性和健康狀態。

Profiler是一種方便的工具,可用於觀察應用程序如何與您的數據庫進行通信並調試異常行為。 對於性能檢測來說,這不是一個長期的解決方案,因為它給您的服務器帶來了負擔,並且結果需要相當多的工作和消化才能為您描繪出清晰的畫面。

隨機的想法:檢查您的應用程序池配置,並留意事件日志中是否有太多的回收事件。 當應用程序池回收時,需要長時間才能再次響應。 這只是會影響性能的事情之一,您可以扯掉頭發以進行追蹤。 最近,不正確的回收設置使我很頭疼,所以才提到它。

對於nHibernate分析(會話查詢,緩存,執行時間),可以使用HibernatingRhinos Profiler。 它是由開發nhibernate的人員開發的,因此您知道它會非常有用。

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

您可以嘗試一下並確定它是否對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM