.NET GC 实时监控工具 dotnet gcmon 介绍
今天介紹一個新的診斷工具 dotnet-gcmon, 也是全局 .NET CLI 工具, 它可以監(jiān)控到 .NET 程序的 GC, 能獲取到的信息也很詳細(xì), 另外 maoni 大佬也是其中的開發(fā)者之一。
安裝 gcmon
和其他的 dotnet 診斷工具一樣, 你可以使用以下命令,進(jìn)行全局安裝
dotnet tool install -g dotnet-gcmon參數(shù)介紹
| 參數(shù) | 描述 |
| n | 進(jìn)程名, dotnet 應(yīng)用的進(jìn)程名 |
| p | 進(jìn)程ID, dotnet 應(yīng)用的 Process ID |
| m | 最小 GC 暫停持續(xù)時間(以毫秒為單位),可選 |
| c | 指定一個 yaml 配置文件路徑, 可選 |
使用
使用非常簡單, 我們需要指定被監(jiān)控的 dotnet 應(yīng)用的進(jìn)程名或者是進(jìn)程ID (PID), 這里也可以使用另外一個診斷工具 dotnet-trace, 安裝命令如下
dotnet tool install -g dotnet-trace然后運(yùn)行?dotnet trace ps?獲取所有的 dotnet 進(jìn)程
接下來, 運(yùn)行?dotnet gcmon -p 21904, 開始監(jiān)控 dotnet 應(yīng)用, 診斷工具會輸出下面的信息
在診斷工具運(yùn)行的時候, 按下?s?鍵, 會輸出當(dāng)前 GC 的整體和每一代的狀態(tài)
另外還可以使用 yaml 配置文件, 靈活配置診斷工具輸出列,具體可以參考 github。
總結(jié)
dotnet gcmon 是一個小而實用的診斷工具, 并且還在迭代中, 在對于代碼無侵入的情況下, 排查問題還是很方便的, 另外 .NET 現(xiàn)在已經(jīng)有近十個診斷工具了!
gcmon 的工作原理是什么呢? 其實主要是調(diào)用了 CLR 運(yùn)行時團(tuán)隊提供的一個診斷庫,?Microsoft.Diagnostics.NETCore.Client, 這個庫功能就非常強(qiáng)大了, 各種運(yùn)行時信息都可以拿到, 當(dāng)然你也可以用它實現(xiàn)一個診斷工具, 這個庫是基于 EventPipe, IPC 等實現(xiàn)的, 還是很復(fù)雜的, 最后希望本文對您有用!
https://github.com/Maoni0/realmon
總結(jié)
以上是生活随笔為你收集整理的.NET GC 实时监控工具 dotnet gcmon 介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: github开源推荐:SuperSock
- 下一篇: 如何通过 Linq 将集合拆成多个块?