使用Visual Studio分析dump


最近系統時不時CPU會飆升的百分之九十多甚至百分百,在本地又很難復現問題,無法定位問題出現在哪。

可以用轉儲文件來保存現場,然后通過分析dump文件可以大概分析出問題的所在

1|0生成轉存文件

在CPU飆升時打開任務管理器,找到對應的進程(IIS Worker Process),右鍵然后點擊創建轉儲文件

 

 

 

2|0使用Visual Studio打開dump文件

選擇要分析的.dmp文件,右鍵使用vs執行

 

 

 

 

 

3|0 分析dump文件

可參考微軟官方文檔:https://docs.microsoft.com/zh-cn/visualstudio/debugger/how-to-debug-managed-memory-dump?view=vs-2022

點擊右側操作下的運行診斷分析,選擇要分析的選項然后點擊分析

 

 

 點擊分析結果可查看具體的分析,包括異常對象以及一些大型對象,可通過檢查其中的對象來排除代碼是否有不當的使用

 

 

 

 由於我們遇到的問題是CPU占用過高的問題,所以着重檢查CPU使用率摘要

 

 可以發現EndProductHandler這個類是使用CPU資源最多的,我們也可以打開並行堆棧來查看方法的調用

 

 

 

最后通過檢查分析EndProductHandler發現有個方法在循環生成某個表,然后沒有使用EF的批量新增,再通過阿里雲的監控台可以看到CPU飆升的那段時間用戶剛好在執行此操作。

至此,先將方法修改成批量新增的方法,等后續再觀察下還有沒有別的問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM