.net 監控跟蹤 dotnet-gcmon dotnet-trace

學習(不好意思剽竊了)了一下

博客地址:https://www.cnblogs.com/myshowtime/p/15587070.html

今天介紹一個新的診斷工具 dotnet-gcmon, 也是全局 .NET CLI 工具, 它可以監控到 .NET 程序的 GC, 能獲取到的信息也很詳細, 另外 maoni 大佬也是其中的開發者之一。

安裝 gcmon

和其他的 dotnet 診斷工具一樣, 你可以使用以下命令,進行全局安裝

dotnet tool install -g dotnet-gcmon 

參數介紹

參數 描述
n 進程名, dotnet 應用的進程名
p 進程ID, dotnet 應用的 Process ID
m 最小 GC 暫停持續時間(以毫秒爲單位),可選
c 指定一個 yaml 配置文件路徑, 可選

使用

使用非常簡單, 我們需要指定被監控的 dotnet 應用的進程名或者是進程ID (PID), 這裏也可以使用另外一個診斷工具 dotnet-trace, 安裝命令如下

dotnet tool install -g dotnet-trace

然後運行 dotnet trace ps 獲取所有的 dotnet 進程

img

接下來, 運行 dotnet gcmon -p 21904, 開始監控 dotnet 應用, 診斷工具會輸出下面的信息

img

在診斷工具運行的時候, 按下 s 鍵, 會輸出當前 GC 的整體和每一代的狀態

img

另外還可以使用 yaml 配置文件, 靈活配置診斷工具輸出列,具體可以參考 github。

總結

dotnet gcmon 是一個小而實用的診斷工具, 並且還在迭代中, 在對於代碼無侵入的情況下, 排查問題還是很方便的, 另外 .NET 現在已經有近十個診斷工具了!

gcmon 的工作原理是什麼呢? 其實主要是調用了 CLR 運行時團隊提供的一個診斷庫, Microsoft.Diagnostics.NETCore.Client, 這個庫功能就非常強大了, 各種運行時信息都可以拿到, 當然你也可以用它實現一個診斷工具, 這個庫是基於 EventPipe, IPC 等實現的, 還是很複雜的, 最後希望本文對您有用!

https://github.com/Maoni0/realmon

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章