[.NET Performance] 使用 jetbrains dotTrace Profiler 分析線上運行的 IIS 站台

最近遇到了一個問題,我有一個站台,在某些機器,CPU 會飆到 20% 上下,由於是要診斷遠端服務於是派出 jetbrains dotTrace Profiler 來幫幫我

https://www.jetbrains.com/profiler/features/

前置作業

安裝 dotTrace

https://www.jetbrains.com/profiler/?fromMenu

足夠的記憶體

 

分析遠端服務

dotTrace RenoteAgent 是一隻 WCF 的應用程式,要透過它來蒐集目標電腦的資訊,要用這種方式蒐集,就必須要有目標電腦的權限

@遠端目標電腦

在本地端執行 dotTrace 把下圖的檔案解壓縮,放到遠端目標電腦

  • 在遠端目標電腦,用管理員權限執行 dotTrace RemoteAgent
  • 在遠端目標電腦,開啟防火牆,9100 port

 

@本地端目標電腦

輸入遠端 Agent 位置

 

Attach 想要分析的 Application Pool

Timeline 能得到較多的資訊,比如 SQL Query

準備開始

 

看到下面畫面,它已經在蒐集資料了,你可以先操作一下你的網站再按下 Get Snapshot and Wait

等待中...

有警告訊息,沒關係,這不影響我們要看的東西,打開 Snapshot

 

報表

通通在一頁,然後再選擇你想要看的內容

 

選擇執行序

看不到 Code 是因為沒有符號表跟原始碼

 

選擇時間軸

深深覺得 ANTS Performance Profiler 功能還有介面做的比較好

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo